【问题标题】:Invoice table hold invoices based on their line items发票表根据其行项目保存发票
【发布时间】:2014-08-14 18:46:52
【问题描述】:

我有一张记录我们公司内部发票的表格。我需要确定一个特定发票号码是否有多个条目,如果有,那么我需要查看 bin 位置。我需要让结果看起来像一个发票条目,其中所有数量、税值、成本值和盘值加在一起。最终输出应该只为每张发票显示一行,所有值加在一起。

Invoice | QtyInvoiced | TaxValue | CostValue | DiscValue | Warehouse | Bin
___________________________________________________________________________
1            1000          5.0        5.0         1.0         KT        23
1             500          5.0        5.0         1.0         KT       Stage
2            1000          3.0        9.0         0.0         KT       Stage
3            1000          5.0        5.0         1.0         KT        19
3             500          5.0        5.0         1.0         KT       Stage

结果需要是:

Invoice | QtyInvoiced | TaxValue | CostValue | DiscValue | Warehouse | Bin
___________________________________________________________________________
1            1500          10.0        10.0       2.0         KT        
2            1000           3.0         9.0       0.0         KT       
3            1500          10.0        10.0       2.0         KT        

【问题讨论】:

  • 有趣。你试过做点什么吗?
  • 是否有面向用户的应用程序?它是用什么写的?您是否有任何代码或数据库设计可供展示?因为您正在寻找具体的答案,所以您自己必须更加具体,以便我们为您提供帮助。
  • SELECT [Invoice] as Invoice ,SUM([QtyInvoiced]) as QtyInvoiced ,SUM([Mass]) as Mass ,SUM([Volume]) as Volume ,SUM([NetSalesValue]) as NetSalesValue ,SUM([TaxValue]) as TaxValue ,SUM([CostValue]) as CostValue ,SUM([DiscValue]) as DiscValue FROM dbo.ArTrnDetail GROUP BY Invoice
  • 如果我添加 WHERE Invoice = '123456' 这会很好用,但是如果我在整个表格上运行它,它仍然会显示表格中的每个发票条目。
  • 在没有WHERE 子句的情况下显示所有发票有什么问题?

标签: sql sum invoice


【解决方案1】:

这应该可以得到你想要的,你可能需要稍微修改它以适应你并没有真正提供表结构。

SELECT invoice_nbr, SUM(qty) As TotalQty,
       SUM(taxvalue) As TotalTaxValue,
       SUM(costvalue) As TotalCostValue,
       SUM(discvalue) As TotalDiscValue
FROM invoices
GROUP BY invoice_nbr
ORDER BY invoice_nbr;

【讨论】:

  • 如果发票表中有多张发票,并且并非所有发票在发票上都有多行,您如何使用此示例?
  • 无论是否有多个具有相同编号的发票,它都应该工作。 SUM 只是将查询分组所在列的列中的所有项目相加。
  • 如何在其中添加图片?
  • 不知道添加图像是什么意思。您可以选择其他列,但 SUM 仅适用于数字,您不能对非数字字段执行聚合。您必须编写一个子查询作为初始选择列表的一部分,该列表可以将 varchar 或其他类型的值连接在一起。
  • 我猜 group by 不起作用,我只想查看每个发票编号的一个行项目。
猜你喜欢
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
相关资源
最近更新 更多