我有两个要比较的查询,并获取在第一个查询中找到的额外行,这些行不在第二个加 1 中。我需要 DocEntryCN 来执行一些工作。
例如查询 1
SELECT DocEntry AS "DocEntryCN" , Comments, JrnlMemo, DocTotal
FROM ORIN WHERE DocDate BETWEEN '10-27-2012' AND '10-29-2012' AND Comments IS NOT NULL
ORDER BY DocTotal ASC, Comments
查询 2
SELECT DocEntry AS "DocEntryINV" , Comments, DocTotal
FROM OINV WHERE DocDate BETWEEN '10-27-2012' AND '10-29-2012' AND Comments IS NOT NULL
ORDER BY DocTotal ASC, Comments
示例结果:查询 1
DocEntryCN Comments JrnlMemo DocTotal
67 reverse kaka-19 500
69 reverse kaka-19 500
70 reverse kaka-19 500
71 reverse kaka-19 500
74 reverse kaka-19 500
75 reverse Rob-23 750
77 reverse Rob-23 750
78 reverse Rob-23 750
79 reverse Rob-23 750
84 reverse Paul-17 1250
86 reverse Paul-17 1250
87 reverse Paul-17 1250
示例结果:查询 2
DocEntryINV Comments DocTotal
1 kaka-19 500
3 kaka-19 500
5 kaka-19 500
6 kaka-19 500
7 Rob-23 750
9 Rob-23 750
10 Alex-09 1000
11 Olma-08 1150
12 Paul-17 1250
13 Paul-17 1250
16 Paul-17 1250
17 Rita-99 1300
19 Rita-99 1300
期望的结果
DocEntryCN Comments JrnlMemo DocTotal
67 reverse kaka-19 500
69 reverse kaka-19 500
75 reverse Rob-23 750
77 reverse Rob-23 750
78 reverse Rob-23 750
84 reverse Paul-17 1250
90 reverse Rita-99 1300
在第一个查询中,“kaka-19”有 5 个重复项。在第二个查询中,相同的“kaka-19”有 4 个重复项。我希望我的结果如上所示,其中 (5-4)+1 = 2 表示“kaka-19”等等。
注意。查询 2 中的注释存储应该是唯一的发票编号。如果 OINV 表中任意两条注释相同,则表示存在重复错误。ORIN 表中的 JrnlMemo 字段存储 OINV 发票编号。对于任何发票重复没有。k,要冲销的贷方票据的正确数量应该是 k - 1。
如何为所需结果构建查询?
对于我的测试,我刚刚创建了几个临时表(#CN 代表 ORIN,#INV 代表 OINV)。您应该能够毫不费力地用上述查询替换它们。
下面的查询应该是一个相对有效的查询来得到你想要的结果:
使用的样本数据:
我应该指出,结果将与您在所需结果部分中指出的略有不同,因为您有一个 DocEntryCN 为 90 的 Rita,但 ORIN 中没有 Rita 条目。否则,结果是一样的。