我使用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