2014-10-24 3 views
0

판매 테이블에 가입하는 제품 테이블에서 가장 인기있는 판매 품목을 표시해야합니다. 가장 인기있는 판매 품목을 표시해야합니다. 여기 가장 내부 이음새를 판매 한 제품

내가 해봤 코드입니다 :

SELECT products.prod_id, products.prod_name, sales.quantity, 
FROM products 
INNER JOIN sales ON products.prod_id = sales.prod_id 
다음

사진의 제품과 판매 제품입니다 products 판매 sales

+0

3 답변, 3 구문 오류 ... 자신의 코드가 전혀 실행되지 않습니까? – HoneyBadger

+0

Nope unfortunatly .. – Jmac88

+0

귀하의 질문에 언급하는 것이 도움이 될 것입니다. 네 테이블에 다른 이름이 붙어있는 것 같아. 확인해 줄래? – HoneyBadger

답변

1
SELECT products.prod_id, products.prod_name, sum(sales.quantity) as sales_total 
FROM products 
INNER JOIN sales ON products.prod_id = sales.prod_id 
GROUP BY products.prod_id, products.prod_name 
+0

2 번째 줄에 구문 오류가 발생했음을 확인했습니다. – Jmac88

+0

선택 목록 끝에 오류가 발생했음을 알았습니다. 레이더가 고쳐 준 덕분에. 이제 구문 오류가 없어야합니까? – Arvo

1
SELECT products.prod_id, products.prod_name, SUM(sales.quantity) as sales_total, 
FROM products 
INNER JOIN sales ON products.prod_id = sales.prod_id 
GROUP BY products.prod_id, products.prod_name 
ORDER BY sales_total DESC 
+0

Obi Wan의 말로 - "이것은 찾고있는 쿼리입니다" – JustSteveKing

+0

1 번 구문 오류가 발생했습니다 – Jmac88

0
SELECT products.prod_id, products.prod_name, SUM(sales.quantity), 
FROM products 
INNER JOIN sales ON products.prod_id = sales.prod_id 
GROUP BY prod_id 
ORDER BY 3 DESC 
LIMIT 25 

당신은 줘야 해 나는 판매에 (prod_id, quantity)와 같은 색인을 원한다.

+0

다른 구문 오류가 발생했습니다 – Jmac88

+0

아마 추가로 – winmutt

0
SELECT b.prod_id, p.prod_name, b.Qty 
FROM ( 
    SELECT a.prod_id, a.Qty, MAX(a.Qty) OVER() AS MaxQty 
    FROM ( 
     SELECT s.prod_id, SUM(s.quantity) AS Qty 
     FROM sales s 
     GROUP BY s.prod_id) a) b 
INNER JOIN Products p ON p.prod_id = b.prod_id 
WHERE b.Qty = b.MaxQty 
+0

코드와 함께 사용하는 것이 좋습니다. – jnm2

+0

다른 구문 오류 – Jmac88

+0

이 쿼리는 중첩 된 select 문을 사용합니다. 가장 안쪽 (a)은 제품 별 수량 합계를 가져옵니다. 세 번째 줄에서 쳐다 보는 Select는 분석 함수 'MAX (..) OVER()'를 사용하여 전체 집합에 대해 가장 많은 양을 얻습니다. 그리고 외부 선택은 제품 수량 합계와 함께 최대 수량 합계와 일치합니다. 우리가 원하는 제품을 제공합니다. 그런 다음 제품 이름을 얻기 위해 가입하십시오. 이것은 다른 이름의 테이블을 사용하여 SQL Server에서 시도한 것입니다 (Northwind 예제 db에서 생각한 것입니다). 그런 다음 질문에 맞게 테이블과 열 이름을 바꿉니다. WITH를 사용하여이 작업을 수행 할 수도 있습니다. – rbremrs

관련 문제