【问题标题】:SQL Join query with aggregate function具有聚合函数的 SQL 连接查询
【发布时间】:2017-10-27 09:22:28
【问题描述】:

我有月表和日表。我需要根据用户 ID、交易提交日期、总金额比较记录数,即对于交易提交日期和用户 ID,我需要知道记录数和总金额。

Transaction submit date     Cust Number Total amount
1/1/2017                       700           0.7
1/1/2017                       700           0.7
1/1/2017                       700           0.7
1/1/2017                       700           0.7
1/1/2017                       700           0.7
1/1/2017                       700           0.7
1/1/2017                       700           0.7
1/1/2017                       797           0
1/1/2017                       797           1.4
1/1/2017                       797           1.6

如果我有这样的桌子。需要根据交易提交日期和行数汇总总金额,即

1/1/2017     700   7      4.9 

明智地为每日和每月表执行此操作并希望得到结果。 所以,我知道在特定交易日期,每月和每天特定客户 ID 的行数是多少。 我可以将两个表分别导出到 Excel 并进行比较。但是,想知道我们能否在单个查询中处理这个问题。

【问题讨论】:

  • 那么在 monthly 表中你也有 daily 记录吗?或者您将如何比较 date 的结果?我本来希望您要求比较每月的汇总数据。

标签: sql tsql


【解决方案1】:

请试试这个,克里特月刊和每日 CTES 并加入他们,这将提供相同的记录。

 With Montyly as
 (
 SELECT Montyly
      ,Number
    ,Count(Total) MCount
    ,SUM(Total) MTotal
  FROM myTable
  GROUP BY DATE
    ,Number
 ),
With Daily as
(
SELECT DATE
    ,Number
    ,Count(Total) DCount
    ,SUM(Total) DTotal
FROM myTable
GROUP BY DATE
    ,Number
 )

select * from 
Montyly M inner join Daily D on
M.Date=D.Date and M.Number=D.Number and M.MCount=D.DCount and M.MTotal.D.DTotal

【讨论】:

  • 您好,我正在尝试根据您的输入运行查询(如上所述)。但是,有一个错误说,“消息 156,级别 15,状态 1,第 10 行”关键字“With”附近的语法不正确。消息 319,级别 15,状态 1,第 10 行 关键字“with”附近的语法不正确。如果这个语句是一个公用表表达式、一个 xmlnamespaces 子句或一个更改跟踪上下文子句,则前面的语句必须以分号结束。
【解决方案2】:
   SELECT DATE
        ,Number
        ,Count(Total)
        ,SUM(Total)
   FROM myTable
   GROUP BY DATE
        ,Number

【讨论】:

  • 我有两张桌子。我需要比较结果。我知道查询只能处理一个表。
  • 你能提供每个表的架构吗?可以使用 CTE 完成
  • 表 1:order_table_Monthly 列:Transaction_submit_date、Customer_number、Amount。表 2:order_table_Daily 列:Transaction_submit_date、Customer_number、Amount。相同的记录进入这些表。但顾名思义,一张表每天更新。另一个每月。我必须比较交易提交日期、客户编号的两个表,然后显示行数和总数。
猜你喜欢
  • 2011-12-15
  • 1970-01-01
  • 2023-02-03
  • 2014-09-07
  • 2023-03-06
  • 1970-01-01
  • 2020-06-17
  • 1970-01-01
  • 2014-01-02
相关资源
最近更新 更多