제목 혼동? :)SQL이 두 테이블의 조인을 세 번째 조인 된 데이터로 그룹화
장바구니 데이터베이스에서 유용한 보고서를 생성하려고합니다.
가 "date_ordered"포함하는 테이블 orders
(및 기타 물건의 무리 나는 걱정하지 않는다), 키 "orders_id"
두 번째 테이블, orders_products
의 동일한 "orders_id"키가 주문한 물건에 대한 정보를 가지고 있습니다. 특히, "products_id", "products_quantity"및 "final_price"에 관심이 있습니다.
원하는 것은 수량 * 가격의 합계를 표시하고 date_ordered가 사이에있을 때 products_id별로 그룹화 된 판매 보고서를 생성하는 것입니다. 두 날짜. 그리고 이것으로 할 수 있습니다 :
SELECT op.products_id AS 'PID',
SUM(op.products_quantity) AS 'sales Q',
SUM(op.final_price * op.products_quantity) AS 'sales $'
FROM orders o
JOIN orders_products op
ON o.orders_id = op.orders_id
WHERE o.date_purchased
BETWEEN '2012-01-01' AND '2012-12-31'
GROUP BY op.products_id
정상적으로 작동하는 것 같습니다. 그러나 지금은 단순히 제품 이름을 보여주는 다른 열을 보고서에 추가하려고합니다. 이 데이터는 "products_name"열의 products_description
테이블에 있습니다. 그래서 나는이 시도 :
SELECT pd.products_name AS 'Product',
op.products_id AS 'PID',
SUM(op.products_quantity) AS 'sales Q',
SUM(op.final_price * op.products_quantity) AS 'sales $'
FROM orders o
JOIN orders_products op
ON o.orders_id = op.orders_id
JOIN products_description pd
ON op.products_id = pd.products_id
WHERE o.date_purchased
BETWEEN '2012-01-01' and '2012-12-31'
GROUP BY op.products_id
을 그리고 나는 모든 판매 Q를 발견하고 판매 수치가해야 배 무엇인가 $까지 처음에는이 일을 나타났다.
파악 능력을 넘어 이동했습니다 :) 감사합니다.
그룹 조항 –
에 pd.products_name을 추가하십시오. 제품 ID에 3을 곱한 경우 products_description 테이블에 동일한 제품 ID에 대해 3 행이 포함되어 있기 때문입니다. – Walid
@Nikita ... 이상하게도 서버가 다운됩니다! 롤. 재부팅을 시도하고 다시 해보니 똑같은 ... 얼어 버렸어. WEIRD – bcsteeve