SQL获取总值
我使用了SQL Server 2005,我想得到1张发票的总价值 电流输出:SQL获取总值,sql,sql-server,tsql,sql-server-2005,Sql,Sql Server,Tsql,Sql Server 2005,我使用了SQL Server 2005,我想得到1张发票的总价值 电流输出: Invoice price ------------------- 1234 2000 1234 2500 9012 3000 3456 1000 但是我的选择字段这是因为价格已经很长了,我不知道如何在上面加上总和 RIGHT('000000000000'+ convert(varchar,cast
Invoice price
-------------------
1234 2000
1234 2500
9012 3000
3456 1000
但是我的选择字段这是因为价格已经很长了,我不知道如何在上面加上总和
RIGHT('000000000000'+ convert(varchar,cast(A.IVC_ForeignGrossAmt as decimal(9,2))),13) as IVC_ForeignGross,
预期产出应为:
Invoice price
-------------------
1234 4500
1234 4500
9012 3000
3456 1000
你的意思是说我们本来应该
Invoice price
-------------------
1234 4500
9012 3000
3456 1000
你可以试试
SELECT INVOICE.ID, SUM(PRICE) FROM INVOICE
GROUP BY INVOICE.ID
你的意思是说我们本来应该
Invoice price
-------------------
1234 4500
9012 3000
3456 1000
你可以试试
SELECT INVOICE.ID, SUM(PRICE) FROM INVOICE
GROUP BY INVOICE.ID
使用相关子查询,如下所示:
SELECT
Invoice,
(SELECT SUM(t2.price)
FROM table1 t2
WHERE t1.invoice = t2.invoice) price
FROM Table1 t1;
这将为您提供:
| INVOICE | PRICE |
-------------------
| 1234 | 4500 |
| 1234 | 4500 |
| 9012 | 3000 |
| 3456 | 1000 |
使用相关子查询,如下所示:
SELECT
Invoice,
(SELECT SUM(t2.price)
FROM table1 t2
WHERE t1.invoice = t2.invoice) price
FROM Table1 t1;
这将为您提供:
| INVOICE | PRICE |
-------------------
| 1234 | 4500 |
| 1234 | 4500 |
| 9012 | 3000 |
| 3456 | 1000 |
您可以使用按发票划分的汇总,这类似于按以下方式分组:
但是,不确定正确的“000000000000…”。。。问题的一部分您可以使用按发票划分的汇总,这类似于按以下方式分组:
但是,不确定正确的“000000000000…”。。。您的问题的一部分是,您只需要根据发票上的GROUP BY计算价格的总和,并根据需要设置价格格式
SELECT A.Invoice,
RIGHT('000000000000'+ convert(varchar,cast(SUM(A.IVC_ForeignGrossAmt)
as decimal(9,2))),13) as IVC_ForeignGross
FROM yourTable A
GROUP BY Invoice;
您只需要根据发票上的GROUP BY计算价格的总和,并根据需要格式化价格
SELECT A.Invoice,
RIGHT('000000000000'+ convert(varchar,cast(SUM(A.IVC_ForeignGrossAmt)
as decimal(9,2))),13) as IVC_ForeignGross
FROM yourTable A
GROUP BY Invoice;
船长要求出示发票的副本。这不会给你带来什么好处duplicate@syedmohsin重复发票?可能是,但我不认为在下一行显示相同的内容是个好主意,或者他/她可能会感到困惑。这绝对不像重复发票,这是id 1234 4500=2000+2500…@bonCodigo的总数,我想他/她一定很困惑,他/她只需要计算同一张发票的金额。船长16需要发票的副本。这不会给你带来什么好处duplicate@syedmohsin重复发票?可能是,但我不认为在下一行显示相同的内容是个好主意,或者他/她可能会感到困惑。这绝对不像重复发票,这是id 1234 4500=2000+2500…@bonCodigo的总数,我想他/她一定很困惑,他/她只需要计算同一张发票的金额。IVC_ForeignGrossAmt的类型是什么,它不是表中的小数点吗?@Captain16您需要重复发票吗?不确定您为什么使用这一行?右图“000000000000”+convertvarchar,castA.IVC_ForeignGrossAmt作为小数9,2,13作为IVC_ForeignGrossAmt,@bonCodigo我猜他需要在数字0000002896.15未反映在预期输出之前先行0。IVC_ForeignGrossAmt的类型是什么,这不是表中的小数点吗?@Captain16您需要重复的发票吗?不确定您为什么使用这一行?正确的'000000000000'+convertvarchar,castA.IVC_ForeignGrossAmt作为小数点9,2,13作为IVC_ForeignGross,@bonCodigo我想他需要在数字0000002896.15未反映在预期输出中之前始终领先0。我如何在我的选择字段中添加除以的和?@Captain16:但你的问题有点让人困惑。IVC_ForeignGross不是价格,您的预期输出也没有像0000002896.15这样的前导零。你能澄清一下你的要求吗?我怎样才能在我的选择字段中加上除以的和?@Captain16:但是你的问题有点让人困惑。IVC_ForeignGross不是价格,您的预期输出也没有像0000002896.15这样的前导零。你能澄清你的要求吗?