我有两张桌子: 表A有一个记录列表。
RecordID DateTime ClientID
1 2017-07-01 17:20:21 1
2 2017-07-01 17:01:41 2
3 2017-07-01 17:20:30 1
4 2017-07-01 17:10:23 2
5 2017-07-01 17:01:20 2
6 2017-07-01 17:15:11 2
....
表B包含许多客户端的有效记录。
ClientID Date ValidRecords
1 2017-07-01 1
2 2017-07-01 2
我需要一个查询,它从表B中获取数字(n),并在表A中记录数量(n)的数据(1或0)。
预期结果:
RecordID DateTime ClientID Valid
1 2017-07-01 17:20:21 1 1
2 2017-07-01 17:01:41 2 1
3 2017-07-01 17:20:30 1 0
4 2017-07-01 17:10:23 2 1
5 2017-07-01 17:01:20 2 0
6 2017-07-01 17:15:11 2 0
客户端1有一个正确的记录,另一个是0。 客户端2有两个正确的记录,因此其他记录应标记为0.
欢迎任何想法。
答案 0 :(得分:0)
这是一个例子:
我的表格:
Table A
------------------
id | name |
1 | beer |
2 | wine |
------------------
table B
-----------------
id | id_table_a
1 | 1
结果:
-------------------------------
id | name | id_table_a | flag |
1 | beer | 1 | 1 |
2 | wine | Null | 0 |
-------------------------------
查询:
select a.*, b.id_table_a, case when b.id is null then 0 else 1 end as flag
from tablea a
left join tableb b on a.id = b.id_table_a