我在Access中編寫了一條SQL語句,它在其「代碼」列中查找具有相同值的數據行,然後查看具有相同「代碼」值的行,並查找具有與'Money Amt'列值相反(例如,一行將具有200的值,另一行將具有-200),當找到具有相同代碼的這些相反值對時,標記爲行的列然後填充有數字'999' 。Access中的SQL,子查詢配對問題
問題是,我的一些行在奇數組中配對,而不是由2對配對組成。我希望在那裏存在對於相反值的1:1關係,以便它們基本上相互抵消。
下面是我用來得到結果的代碼。
UPDATE [Actual Debt]
SET LineItem = 999
WHERE EXISTS
(SELECT * FROM [Actual Debt] as ad2
WHERE ad2.Code = [Actual Debt].Code
AND ad2.[Money Amt] = - [Actual Debt].[Money Amt]);
在圖片中可以看到,在第一個4行的代碼填充2對如預期相對「金錢金額」的值。但是,在最下面的3行中應該只有1對'999',而是填充了奇數行。
如何讓子查詢僅填充反向對的行字段。
Image from before I put in the current code
預先感謝您。
我想你應該也顯示前面的表格。假設有兩個記錄帶有'+ 0.9'和一個帶有'-0.9'的記錄,底部的3行表示完美感。 –
如果你有重複的話,這在MS Access查詢中很難做到。我可能會建議你在應用程序中執行此操作。其他數據庫具有在單個查詢中實現此功能的功能。 –
我加了之前。有沒有辦法編寫代碼,以便它只能做2對? – Mccormack