读书人

怎么将两表查询合并成一个查询

发布时间: 2014-01-13 17:16:02 作者: rapoo

如何将两表查询合并成一个查询
第一个查询


SELECT 操作日期, SUM(作业吨位) AS 作业吨位
FROM dbo.zyjl
WHERE (CONVERT(varchar(7), 开始时间, 120) >= '2013-01') AND (CONVERT(varchar(7), 开始时间, 120) <= '2013-12')
GROUP BY 操作日期

第二个查询

SELECT 操作日期, SUM(超流量) AS 超流量
FROM (SELECT 操作日期, CASE WHEN [类型] = '超流量' THEN [时间差] ELSE 0 END AS 超流量
FROM dbo.llsj
WHERE (CONVERT(varchar(7), 开始时间, 120) >= '2013-01') AND (CONVERT(varchar(7), 开始时间, 120) <= '2013-12')) AS A
GROUP BY 操作日期
ORDER BY 操作日期

如何合并成
SELECT 操作日期,SUM(作业吨位) AS 作业吨位, SUM(超流量) AS 超流量 from .....?
[解决办法]
SELECT  操作日期 ,
SUM(作业吨位) AS 作业吨位 ,
SUM(超流量) AS 超流量
FROM ( SELECT 操作日期 ,
SUM(作业吨位) AS 作业吨位 ,
0 AS 超流量
FROM dbo.zyjl
WHERE ( CONVERT(VARCHAR(7), 开始时间, 120) >= '2013-01' )
AND ( CONVERT(VARCHAR(7), 开始时间, 120) <= '2013-12' )
GROUP BY 操作日期
UNION ALL
SELECT 操作日期 ,
0 AS 作业吨位 ,
SUM(超流量) AS 超流量
FROM ( SELECT 操作日期 ,
CASE WHEN [类型] = '超流量' THEN [时间差]
ELSE 0
END AS 超流量
FROM dbo.llsj
WHERE ( CONVERT(VARCHAR(7), 开始时间, 120) >= '2013-01' )
AND ( CONVERT(VARCHAR(7), 开始时间, 120) <= '2013-12' )
) AS A
GROUP BY 操作日期
) a
GROUP BY 操作日期
ORDER BY 操作日期

读书人网 >SQL Server

热点推荐