我正在使用SQL Server 2012并执行以下查询:
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 。
有什么想法吗?感谢。
答案 0 :(得分:0)
您可以使用x
分配行号。然后使用10
表达式为每个组选择第一行的实际单位,否则为0。
row_number