连接两个表并显示发票编号总额的 SQL 查询
Posted
技术标签:
【中文标题】连接两个表并显示发票编号总额的 SQL 查询【英文标题】:SQL Query which join two tables and display Total amount of invoice number 【发布时间】:2014-08-30 06:24:38 【问题描述】:我是 *** 的新手,很抱歉我的英语很差,请不要对我的问题给予否定的评价,我真的需要答案。
我一直在做一项任务。我有两张表 sale_head 和 sale_details
表 sale_head 有以下字段。 -- invoiceno (PK),suppliername,invoicedate 并且表 sale_details 具有以下字段。 -- invoiceno(FK),suppliername,product_code,qty,totalkg,rate,subtotal 基本上我在这里所做的是,我有两个表,主表和从表,主表包含数据的所有头部信息,详细信息表包含产品代码、产品数量、费率和总计等其他详细信息等等
到目前为止,我已经想出了一个如下的 SQL 查询
SELECT sale_head.suppliername AS sale_head_suppliername,
sale_head.invoiceno AS sale_head_invoiceno, sale_head.invoicedate,
sale_details.invoiceno AS sale_details_invoiceno,
sale_details.suppliername AS sale_details_suppliername,
sale_details.product_code, sale_details.qty, sale_details.totalkg,
sale_details.Rate, sale_details.subtotal
FROM sale_head
INNER JOIN sale_details ON sale_head.[invoiceno] = sale_details.[invoiceno]
WHERE (((sale_head.suppliername)='Ramkrishna Creation'));
上面的查询显示了一些特定的结果(日期显示的数量很多)请参考这个图片链接。这将向您显示上述 SQL 查询的结果 我得出的结果:Image link
我想要显示的结果是:Image Link 我想要发票号码末尾的小计总和,如上图所示,不要关注颜色,我刚刚显示了你引起注意的颜色。 我真的需要这个问题的答案,所以请帮助我。
【问题讨论】:
【参考方案1】:您可以使用UNION ALL
执行此操作:
SELECT sale_head.suppliername AS sale_head_suppliername,
sale_head.invoiceno AS sale_head_invoiceno, sale_head.invoicedate,
sale_details.invoiceno AS sale_details_invoiceno, sale_details.suppliername AS sale_details_suppliername,
sale_details.product_code, sale_details.qty, sale_details.totalkg, sale_details.Rate, sale_details.subtotal FROM sale_head
INNER JOIN sale_details ON sale_head.[invoiceno] = sale_details.[invoiceno]
UNION ALL
select 'Total', sum(sale_details.subtotal) from sale_details
WHERE (((sale_head.suppliername)='Ramkrishna Creation'));
【讨论】:
感谢您的回答,当我尝试在 MsAccess 中运行此 SQL 时,它给了我一个名为“查询表达式 'sum(sale_details.subtotal) 中的语法错误(缺少运算符)”的错误 WHERE ((( sale_head.suppliername)='Ramkrishna Creation'))' 有什么解决办法? 谢谢 但是现在它说两个选定表中的列数或联合查询的查询不匹配。以上是关于连接两个表并显示发票编号总额的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章