tb_orders 테이블이 있습니다
id_order | 제비 | 파트너 | no_order | 근육 |
---|---|---|---|---|
5555 | 1 | GOZNAK | 390 | 과 |
6666 | 1 | KOMSCO | 391 | 과 |
다른 테이블 tb_pengambilans_detail이 있습니다.
신분증 | id_order | 데이트 | 합계 |
---|---|---|---|
137 | 5555 | 2021-01-05 09:36:16 | 100000 |
136 | 6666 | 2021-01-05 09:35:57 | 100000 |
94 | 6666 | 2020-12-15 15:00:47 | 100000 |
138 | 5555 | 2021-01-05 09:37:51 | 100000 |
테이블 tb_lini_pengambilans_detail
신분증 | id_order | 데이트 | deret5 |
---|---|---|---|
38 | 6666 | 2020-12-08 09:26:36 | 30000 |
39 | 5555 | 2020-12-08 09:31:49 | 10000 |
40 | 6666 | 2020-12-14 07:55:36 | 80000 |
41 | 6666 | 2020-12-14 07:57:34 | 20000 |
테이블 tb_produksi_cutpacks_detail
신분증 | 데이트 | id_order | hcts | 부적합 |
---|---|---|---|---|
30 | 2021-01-04 13:02:10 | 5555 | 5000 | 0 |
32 | 2021-01-04 14:10:05 | 5555 | 0 | 10000 |
34 | 2021-01-04 15:11:57 | 5555 | 0 | 2000 년 |
35 | 2021-01-04 15:14:10 | 6666 | 9000 | 0 |
테이블 tb_lini_produksi_cutpacks_detail
신분증 | 데이트 | id_order | xbaik | xderet5 |
---|---|---|---|---|
16 | 2021-01-04 14:52:38 | 5555 | 4000 | 1000 |
18 | 2021-01-04 14:53:21 | 6666 | 8000 | 0 |
19 | 2021-01-04 14:53:36 | 6666 | 0 | 2000 년 |
21 | 2021-01-04 14:57:41 | 5555 | 0 | 15000 |
나는 개별적으로 수행했으며 모든 결과가 정확하고 두 배가 아닙니다.
SELECT a.rekanan,
SUM(COALESCE(b.jumlah,0)) AS `pengambilan`
FROM tb_orders a
LEFT JOIN tb_pengambilans_detail b USING(id_order)
WHERE a.pec='y'
GROUP BY a.rekanan
결과
파트너 | 취득 |
---|---|
GOZNAX | 200000 |
KOMSCO | 200000 |
SELECT a.rekanan,
SUM(COALESCE(c.unfit + c.hcts,0)) AS prod_hcts
FROM tb_orders a
LEFT JOIN tb_produksi_cutpacks_detail c USING(id_order)
WHERE a.pec='y'
GROUP BY a.rekanan
결과
파트너 | prod_hcts |
---|---|
GOZNAX | 17000 |
KOMSCO | 9000 |
SELECT a.rekanan,
SUM(COALESCE(d.deret5 ,0)) AS `pengambilanlini`
FROM tb_orders a
LEFT JOIN tb_lini_pengambilans_detail d USING(id_order)
LEFT JOIN tb_lini_produksi_cutpacks_detail e USING(id_order)
WHERE a.pec='y'
GROUP BY a.rekanan
결과
파트너 | 라인 검색 |
---|---|
GOZNAX | 20000 |
KOMSCO | 260000 |
그리고 마침내
SELECT a.rekanan,
SUM(COALESCE(e.xbaik + e.xderet5 ,0)) AS prod_hctslini
FROM tb_orders a
LEFT JOIN tb_lini_produksi_cutpacks_detail e USING(id_order)
WHERE a.pec='y'
GROUP BY a.rekanan
결과
파트너 | prod_hctslini |
---|---|
GOZNAX | 20000 |
KOMSCO | 10000 |
모든 것에 대해 확신 한 후 모든 테이블을 조인했고 결과는 모두 두 배였습니다 ...
SELECT a.rekanan,
SUM(COALESCE(b.jumlah,0)) AS `pengambilan`,
SUM(COALESCE(c.unfit + c.hcts,0)) AS prod_hcts,
SUM(COALESCE(d.deret5 ,0)) AS `pengambilanlini`,
SUM(COALESCE(e.xbaik + e.xderet5 ,0)) AS prod_hctslini
FROM tb_orders a
LEFT JOIN tb_pengambilans_detail b USING(id_order)
LEFT JOIN tb_produksi_cutpacks_detail c USING(id_order)
LEFT JOIN tb_lini_pengambilans_detail d USING(id_order)
LEFT JOIN tb_lini_produksi_cutpacks_detail e USING(id_order)
WHERE a.pec='y'
GROUP BY a.rekanan
결과
파트너 | 취득 | prod_hcts | 라인 검색 | prod_hctslini |
---|---|---|---|---|
GOZNAX | 1200000 | 68000 | 120000 | 120000 |
KOMSCO | 1200000 | 108000 | 520000 | 60000 |
SQL 결과가 두 배가되지 않도록 해결책은 무엇입니까 .. 문제가 해결 될 수 있도록 알려주세요 .. 감사합니다
---- 실제 단일 SQL 솔루션은 ---------------
SELECT a.rekanan,
SUM(COALESCE(b.jumlah,0)) AS `pengambilan`,
SUM(COALESCE(c.unfit + c.hcts,0)) AS prod_hcts,
SUM(COALESCE(d.deret5 ,0)) AS `pengambilanlini`,
SUM(COALESCE(e.xbaik + e.xderet5 ,0)) AS prod_hctslini
FROM tb_orders a
LEFT JOIN (select id_order ,SUM(jumlah) jumlah from tb_pengambilans_detail group by id_order) b USING(id_order)
LEFT JOIN (select id_order ,SUM(unfit) unfit ,SUM(hcts) hcts from tb_produksi_cutpacks_detail group by id_order) c USING(id_order)
LEFT JOIN (select id_order ,SUM(deret5) deret5 from tb_lini_pengambilans_detail group by id_order) d USING(id_order)
LEFT JOIN (select id_order ,SUM(xbaik) xbaik , sum(xderet5) xderet5 from tb_lini_produksi_cutpacks_detail group by id_order) e USING(id_order)
WHERE a.pec='y'
GROUP BY a.rekanan
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다