SQL SUM函数查询

时间:2014-07-10 03:50:46

标签: sql sql-server

我很难总结两张桌子上的专栏。场景是这样的(参见下图)

enter image description here

表1每个日期可能有很多行。但是表2可能只包含每个日期的两行数据。我想要做的是根据他们的日期总结所有项目/价格(表1),并用表2的项目/价格的另一个SUM加上它们。 SUM的类别是按日期。

我尝试了任何连接语句(左,右或内),但它不会产生我期望的结果。我的预期结果是结果表。但根据我的询问,它会产生很高的价值。

感谢。

4 个答案:

答案 0 :(得分:1)

使用像这样的UNION子句:

WITH t(d, p) AS (
    SELECT [Date], Price FROM Table1
        UNION ALL
    SELECT [Date], Price FROM Table2
)
SELECT d, SUM(p) FROM t GROUP BY d

答案 1 :(得分:1)

您可以在子查询或cte中使用UNION ALL执行此操作,此处显示的是cte:

;WITH cte AS (SELECT [Date], Price 
              FROM Table1
              UNION  ALL
              SELECT [Date], Price 
              FROM Table2
             ) 
SELECT [Date], SUM(Price) AS Total_Price
FROM cte
GROUP BY [Date]

演示:SQL Fiddle

答案 2 :(得分:0)

试试这个,

with cte (C_Date,C_Price)
as
(
SELECT date,SUM(price) FROM table_1
group by date
union 
SELECT date,SUM(price) FROM table_2
group by date
)
select c_date,SUM(c_price) from cte
group by C_Date

答案 3 :(得分:-1)

试试这个

Select t.date,P1+P2
from(
Select Date,sum(Price) P1
from table1 t
group by Date
) t
left join 
(
Select Date,sum(Price) P2
from table t2
group by date
) t1 on t.date = t1.date
group by date