【发布时间】:2016-04-27 02:19:39
【问题描述】:
我想合并重复的行(具有相同的 doctype、docnum 和 item)并将它们的 'qtd' 列的值与第一个或最后一个相加。然后删除重复的行,只保留包含总值的行。 (行号删除后不重要,可以不连续号)
实际上我只有查询来检测重复行,我需要查询来合并值并删除合并后剩余的重复行。
PS:这是一个大表,所以 doctype、docnum 和 item 不能像这样在查询中表示...其中 doctype='stket' 和 docum='1' 和 item='4506' 必须找到它们“自动”
表格:文档(以重复行开头)
doctype docnum line item qtd
STKET 1 1 **4506** 10.00
STKET 1 2 3860 27.00
STKET 1 3 **4506** 4.00
STKET 2 1 3860 7.00
STKET 3 1 **4048** 2.00
STKET 3 2 **4048** 5.00
STKET 3 3 4876 11.00
STKET 4 1 3860 1.00
表格:文档(求和后的预期结果)
doctype docnum line item qtd
STKET 1 1 4506 **14.00**
STKET 1 2 3860 27.00
STKET 1 3 4506 4.00
STKET 2 1 3860 7.00
STKET 3 1 4048 **7.00**
STKET 3 2 4048 5.00
STKET 3 3 4876 11.00
STKET 4 1 3860 1.00
表格:文档(删除重复后的预期结果 - 在这种情况下不是第一个!)
doctype docnum line item qtd
STKET 1 1 4506 **14.00**
STKET 1 2 3860 27.00
STKET 2 1 3860 7.00
STKET 3 1 4048 **7.00**
STKET 3 3 4876 11.00
STKET 4 1 3860 1.00
[稍后编辑] - 来自“答案”
在 ZLK 查询之后,我保留这样的表格文档:
doctype docnum line item qtd
STKET 1 1 4506 **10.00**
STKET 1 2 3860 27.00
STKET 2 1 3860 7.00
STKET 3 1 4048 **2.00**
STKET 3 3 4876 11.00
STKET 4 1 3860 1.00
它会找到重复项并删除,但不会对已删除行的 'qtd' 值求和
【问题讨论】:
-
为什么线会变成0和/或线是如何确定的?
-
对不起,这是复制\粘贴错误,我会编辑帖子,谢谢!该行是自动的(连续的),但在删除某些行并且数字不会保持连续的情况下它可以正常工作。
标签: sql sql-server merge sum duplicates