我有SQL会计数据。这些是要进行销售的分录,因此,每进行一次销售,都会有一个抵销的商品销售成本分录。在我们使用的会计系统中,由于某种我不知道的原因,它仅在销售行中自动为TxnId列生成交易ID,而不是为销售行的成本生成交易ID。我使用以下查询提取数据:
SELECT account,name, memo, debit,credit,amount,txnid,refnum,ROW_NUMBER()
OVER (
partition BY memo, refnum
ORDER BY account,memo,amount desc) AS Row_Counter
FROM [dbo].[Table] order by memo asc
结果表如下:
Account Name Memo Debit Credit Amount TxnID RefNum Row_Counter
Sales Company A Wingding 1 Null 855 855 5EASUC-X 12345 1
CostofGoodsSold Company A Wingding 1 -684 Null -684 Null 12345 2
Sales Company A Wingding 2 Null 910 910 5EASUC-X 12345 1
CostofGoodsSold Company A Wingding 2 -850 Null -850 Null 12345 2
Sales Company A Wingding 3 Null 760 760 5EASUC-X 12345 1
CostofGoodsSOld Company A Wingding 3 -665 Null -665 Null 12345 2
我正在尝试修改上面的查询,在末尾添加一列,该列将来自销售列的金额放在基于备注列的销售成本行的同一行中。我希望得到一个看起来像这样的表:
Account Name Memo Debit Credit Amount TxnID RefNum Row_Counter Newnum
Sales Company A Wingding 1 Null 855 855 5EASUC-X 12345 1 855
CostofGoodsSold Company A Wingding 1 -684 Null -684 Null 12345 2 855
Sales Company A Wingding 2 Null 910 910 5EASUC-X 12345 1 910
CostofGoodsSold Company A Wingding 2 -850 Null -850 Null 12345 2 910
Sales Company A Wingding 3 Null 760 760 5EASUC-X 12345 1 760
CostofGoodsSOld Company A Wingding 3 -665 Null -665 Null 12345 2 760
[如果有人有任何建议,将不胜感激。
为行号重复使用该模式:
MIN(Credit) OVER (PARTITION BY memo, refnum) AS Newnum
这是我了解的您想要的:
SELECT account,name, memo, debit,credit,amount,txnid,refnum,ROW_NUMBER()
OVER (
partition BY memo, refnum
ORDER BY account,memo,amount desc) AS Row_Counter
, SUM(ISNULL(Credit,0)) OVER (PARTITION BY memo) as Newnum
FROM [dbo].[Table] order by memo asc