sql server - SQL sum values of duplicate rows into the first one (or last one) -
i want merge duplicated rows (with same doctype, docnum , item) , sum value of 'qtd' column first 1 or last one. delete duplicate rows keeping 1 caries total value. (the line number not important after deleting can allow not sequential numbers)
actually have query detect duplicated rows, need query merge value , delete duplicated rows remain after merge.
ps: big table doctype, docnum , item cannot expressed in query this... doctype='stket' , docum='1' , item='4506' must found "automatically"
table: docs (initial duplicated rows)
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
table: docs (expected result after sum)
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
table: docs (expected result after deleting duplicated - in case not first!)
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
[later edit] - "answer"
after zlk query keep table docs this:
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
it finds duplicates , deletes doesn't sum 'qtd' value of deleted rows
so i'm assuming want basic update statement delete statement.
update docs set qtd = updateqtd docs d join (select doctype, docnum, item, min(line) line, sum(qtd) updateqtd docs group doctype, docnum, item) on a.doctype = d.doctype , a.docnum = d.docnum , a.item = d.item , a.line = d.line; cte ( select *, row_number() on (partition doctype, docnum, item order line) rn docs) delete cte rn <> 1
this updates lowest line number deletes aren't lowest line number.
Comments
Post a Comment