나는 여러 테이블을 판매합니다. 각 테이블의 상위 제품 (수량 값이 더 높음)을 선택하고 "유효 함은 마스터 테이블에서만 판매합니다 "각 판매 목록 테이블에서 다음 모든 테이블의 최고 제품을 선택하십시오.여러 테이블에서 상위 제품 선택 복제 제품을 결합하고 수량을 SUM으로 변환
내가하고 싶어하는 일같은 제품에 두 개의 행이 볼 수 있듯이이 결합하는 것입니다 :
SELECT code_p, SUM(total)
FROM (
SELECT code_p as code_p, SUM(qty_p) as total from table1_sells_list d
INNER JOIN table1 p ON d.code_t1 = p.code_t1
WHERE valid_t3 = true
GROUP BY code_p, qty_p
-----------------------------------------------------------------------
UNION ALL
SELECT code_p, SUM(qty_p) as total from table2_sells_list a
INNER JOIN table2 c ON a.code_t2 = c.code_t2
WHERE valider_t3 = true
GROUP BY code_p, qty_p
-----------------------------------------------------------------------
UNION ALL
SELECT code_p, SUM(qty_p) as total from table2_sells_list e
INNER JOIN table3 f ON e.code_t3 = f.code_t3
WHERE valider_t3 = true
GROUP BY code_p, qty_p
) a
GROUP BY code_p, total
ORDER BY code_p, total DESC
결과는 이것이다 : 이 내가 지금까지 한 일이다 중복 행과 SUM과 같은 합계 :
* 테이블 사이의 판매 *를보고 싶지 않으십니까? 또한 샘플 데이터는 자신이하는 일을 분명히하는 데 도움이됩니다. –
그냥 마지막 'GROUP BY code_p'에서'total'을 제거하십시오. – klin
@klin 글쎄 이것은 잘 작동했지만 쿼리의 맨 위에있는 필드 이름을'totat'가 아닌 다른 것으로 변경해야합니다. 그렇지 않으면'GROUP BY 절에 나타나야합니다 .' 오류가 발생합니다. 감사합니다. – HamzaGeeK