SQL Server联接两个具有自己的值和日期的表

马特

我有两个查询,可得到两组结果:

时间查询:

SELECT a.AID AID, CONCAT(CONVERT(date, c.CDate),DATEPART(HOUR, c.CDate)) CDateHour, SUM(c.time/60/1000) duration
FROM TableA a
INNER JOIN TableB b ON b.bkey = a.akey
LEFT JOIN TableC c ON b.subbkey = c.subckey
WHERE a.AID = '10000'
GROUP BY c.CDate, a.AID
ORDER BY c.CDate;

时间结果:

AID     CDateHour    duration
10000   2018-10-259  91
10000   2018-10-2512 25
10000   2018-10-2513 25
10000   2018-10-2514 14
10000   2018-10-2515 20

计数查询:

SELECT a.AID AID, CONCAT(CONVERT(date, d.DDate),DATEPART(HOUR, d.DDate)) DDateHour, COUNT(DISTINCT e.EID) COUNTEID
FROM TableA a
INNER JOIN TableD d ON d.dto = a.AID
INNER JOIN TableE e ON e.ekey = d.dkey
WHERE a.AID = '10000'
GROUP BY d.DDate, a.AID
ORDER BY d.DDate

计算结果:

AID     DDateHour    COUNTEID
10000   2018-10-256  2
10000   2018-10-257  28
10000   2018-10-258  44
10000   2018-10-259  22
10000   2018-10-2510 49
10000   2018-10-2511 46
10000   2018-10-2512 37

我想加入这两个查询以输出:

AID     DateHour      duration  COUNTID
10000   2018-10-256             2
10000   2018-10-257             28
10000   2018-10-258             44   
10000   2018-10-259   91        22
10000   2018-10-2510            49
10000   2018-10-2511            46
10000   2018-10-2512  25        37
10000   2018-10-2513  25
10000   2018-10-2514  14
10000   2018-10-2515  20

空白可以是NULL0

戈登·利诺夫

您似乎想要:

with q1 as (<first query here without order by>),
     q2 as (<second query without order by>)
select coalesce(q1.AID, q2.AID) as AID,
       coalesce(q1.DDateHour, q2.DDateHour) as DDateHour,
       q1.duration, q2.counteid
from q1 full join
     q2
     on q1.AID = q2.AID and
        q1.DDateHour = q2.DDateHour;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL-具有两个日期列的一个表。计数并加入

SQL从具有内部联接和限制的两个表中选择

在有前缀和无前缀字段上联接两个表的SQL查询

SQL Server联接两个表,主表中没有重复项

SQL中具有两个表的数据透视表和取消透视表(将值转换为列标题)

SQL如何联接两个具有不同列和联接的查询

在元数据库中联接具有不同列名的两个SQL表

SQL:联接两个表,占据所有行并设置默认值

将具有逗号分隔的varchar值的表与SQL Server中另一个表的ID值联接

如何在SQL的两个表中获取具有不常见值的行?

在Oracle SQL中将具有分组元素的两个表联接在一起

SQL:来自两个联接表的值的总和

根据不带主键的日期联接两个表(SQL Server 2014)

SQL连接具有两个公共列的两个表-日期时间问题

SQL合并两个表,其中两个列具有相同的值

SQL-有条件地联接和替换两个表之间的值

SQL-具有两个表和一个JOIN的WHERE之间的区别

创建一个视图,该视图具有按日期分组的两个表的总和(SQL Server 2008)

SQL Server 2008中具有公共日期字段的两个表如何从两个表中按日期进行选择

Sql中的复杂分组,具有针对单个表和联接的两个或三个组条件

SQL查询,联接两个表

在SQL Server中联接两个表

在SQL Server上联接两个表

sql联接两个表,具有非重复结果

在SQL Server 2008中查找具有相同ID且开始日期和结束日期不同的员工每月两个日期之间的天差

SQL Server查询具有日期的联接

SQL Server查询联接两个表

SQL Server Rank() 按日期、分组和连接两个表,包括分页

基于具有日期范围的列中的两个值的 SQL 查询