0
我已經在其他問題中進行了搜索,但我並沒有真正知道如何得到正確的數量,而不是笛卡爾的產品。笛卡爾積SQL
我有如下表:
EGAIT6 EGACAM EGVONO ACC
2477717 -1443,87 41300015 2995
2477717 -2424,75 41300021 2995
2477717 -26630,16 41300022 2995
2477717 22652,96 41563318 2995
2477717 14513,12 41566334 2995
2477717 7703,08 41566335 2995
2477717 1443,87 41566336 2995
2477717 2482,70 41566338 2995
2477717 1124,84 41566339 2995
2477717 4610,99 41566337 2995
2477717 393,45 41571055 2995
2477717 393,45 41571056 2995
2477717 344,04 41574437 2995
2477717 344,04 41574438 2995
2477717 344,04 41584940 2995
2477717 344,04 41584941 2995
2477717 225,70 41689722 2995
2477717 1814,75 41726904 2995
2477717 1814,75 41726905 2995
這是我的查詢:
select
a.egait6,
sum(a.egacam),
a.egvono,
max(a.egvtxt),
max(a.egacdt)
from m3prd.fgledg a
inner join m3prd.fgledg b
on a.egait6 = b.egait6
where a.egcono=001
and a.egdivi='012'
and a.egait1='2995'
and a.egait6='2477717'
group by a.egait6, a.egvono
having sum(a.egacam)<>0
我得到以下結果:
EGAIT6 EGACAM EGVONO
2477717 6 880,80 41574437
2477717 49 654,00 41566338
2477717 6 880,80 41584940
2477717 290 262,40 41566334
2477717 36 295,00 41726905
2477717 92 219,80 41566337
2477717 -532 603,20 41300022
2477717 154 061,60 41566335
2477717 7 869,00 41571056
2477717 6 880,80 41574438
2477717 22 496,80 41566339
2477717 36 295,00 41726904
2477717 -48 495,00 41300021
2477717 4 514,00 41689722
2477717 453 059,20 41563318
2477717 6 880,80 41584941
2477717 -28 877,40 41300015
2477717 7 869,00 41571055
2477717 28 877,40 41566336
如何讓我的查詢返回根據我的表,正確的數量,而不是笛卡爾產品?
正確的量,以量的預期值是:
EGACAM
- 1 443,87
- 2 424,75
- 26 630,16
22 652,96
14 513,12
7 703,08
1 443,87
2 482,70
1 124,84
4 610,99
393,45
393,45
344,04
344,04
344,04
344,04
225,70
1 814,75
1 814,75
我mamking自連接的因爲...真正的表,我在尋找具有兩個EGAIT6和EGVONO更多不同的值。所以我不能刪除查詢的那部分。我只想知道如何避免獲得笛卡爾產品。
金額是多少,你期待得到什麼? – 2015-02-11 15:08:20
究竟是什麼「正確的金額」?你不僅沒有明確地說出這些,你的字段名稱也很難推斷這一點。 – pyon 2015-02-11 15:10:33
您正在使用「兩個」表中完全相同的字段自行加入表。爲什麼不這樣做呢? – 2015-02-11 15:12:32