2011-05-14 137 views
0

我沒有從這個查詢得到正確的結果。訪問sql查詢問題

SELECT Qty as op, 
     0 as secunit 
    FROM tbl_master 
WHERE tb_sno = 1 
UNION 
SELECT main_qty as op, 
     main_unit as secunit 
    FROM purchase 
WHERE tb_sno = 1 
    AND TRN_DATE < #2011/05/14# 
    AND trn_sno2 <> 0 

這顯示的實際數量少一條記錄。有沒有什麼辦法可以得到實際效果

+2

您是否嘗試過使用UNION ALL?也許在其中一個記錄集中有重複的記錄。 – 2011-05-14 06:16:12

+0

@fortheworld你應該做出這個答案 – 2011-05-14 06:30:03

+0

@fortheworld:只有兩列這樣,在保留結果集中的重複內容方面似乎沒有什麼意義。 – 2011-05-15 09:22:11

回答

1

您是否嘗試過使用UNION ALL?也許在其中一個記錄集中有重複的記錄。 (使我的評論一個答案)

0

它看起來像你的兩個查詢設置完全相同的標準tb_sno字段(WHERE tb_sno = 1)。因此,如果op和sec_unit在每個查詢中具有相同的結果值,則UNION將消除重複行之一。如同世界提到的那樣,一個UNION ALL將保留所有重複。