查看完整版本: 關於子查詢
頁: [1]

allan222 發表於 2017-4-9 02:10 PM

關於子查詢

本帖最後由 allan222 於 2017-4-9 02:20 PM 編輯

假設現在有15筆資料 跨兩個資料表a b
我要抓三個欄位分別是sum(b.r_amt)  ,  sum(b.r_amt-b.p_amt)  ,  sum((b.r_amt-b.ur_amt)-(b.p_amt-b.up_amt))
但是其中這15筆資料又有3筆重複(同樣一筆)
必須要拿掉這3筆 查詢出來結果才會是正確的
可是select distinct 又不能用在總合(sum)裡面 他一樣會把他加起來
還有又不可以用group by
因為我只要sum的結果
只有一行

有沒有什麼方法可以解決這個問題呀
請教各位大大~



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

danny543 發表於 2017-4-30 12:00 AM

JOIN 子查詢可以 DISTINCT 也可以 GROUP BY 啊FROM (SELECT DISTINCT b_id, c1, c2, c3 FROM A) A
JOIN (SELECT id, c1, c2, c3 FROM B GROUP BY id) B

love88131496 發表於 2018-7-13 07:21 PM

樓主的問題可能是:
a和b資料表可能各自資料不會重複,但是join以後,會因為join的方式(可能join到其它資料表),導致join出來的資料會有重複。

如果是這樣,那要把完整SQL提供,才知道"重覆"原因是什麼。
如果只是單純各自a,b重覆,而a和b不會重複,那用頭香的方法就可以。
頁: [1]