我使用SQL Server 2012,並執行以下查詢:SQL篩選查詢重複結果
SELECT StockAct.CodAlm, StockAct.CodArt, MovStock.units
FROM MovStock,
StockAct
WHERE MovStock.CodArt = StockAct.CodArt
AND MovStock.CodAlm = StockAct.CodAlm
,結果是這樣的:
CodAlm CodArt Units
0001 BA2 -25
0001 BA2 -25
0001 BA2 -25
0002 BA2 -9
0002 BA2 -9
0002 BA2 -9
0002 BA2 -9
0003 BA2 60
0003 BA2 60
0003 BA2 60
0003 BA2 60
這樣做的目的是使查詢或東西返回在零的重複值(第一個除外):
0001 BA2 -25
0001 BA2 0
0001 BA2 0
0002 BA2 -9
0002 BA2 0
0002 BA2 0
0002 BA2 0
0003 BA2 60
0003 BA2 0
0003 BA2 0
0003 BA2 0
的值總是重複(因此它們是1 1 1,2 2 2 ... n n n)。
考慮到每一種情況,連續的結果可能是3或4。
GROUP BY
和DISTINCT
不工作,因爲查詢返回更多的列有不同的值,他們不相等(我只顯示這些以減輕這個例子)。
在其他編程語言中,可以通過如下方式解決:如果codalm和codart與上一個結果匹配,則顯示0,否則顯示 units.value。
任何想法?謝謝。
在這個例子中,你可以分享你的餐桌數據('MovStock'和'StockAct')嗎? – SmartDev
SQL表和結果集表示*無序*集。除非另一列明確定義排序,否則組中沒有第一行。 –
我想,但他們太大了:D – jinfo