下面的SQL代码向我介绍了我的客户以及他们在2015年12月所做的订单。我想用UNION来完成此任务。SQL:如何使用Union和2种不同类型的数据
select k.klantnr, k.naam, count(b.bestelnr) as 'aantal bestellingen'
from klant k LEFT JOIN bestelling b on k.klantnr = b.klantnr and Year (b.besteldatum) = 2015 and Month(b.besteldatum) = 12
group by k.klantnr, k.naam
我已经尝试过:
select klantnr from klant
union
select klantnr, count(*) from bestelling
where Year(besteldatum) = 2015 and Month(besteldatum) = 12
group by klantnr
显然没有工作给我这个错误:所有的查询使用UNION合并,交叉或EXCEPT运营商必须在其目标列表中的相同数目的表达式。
当我搜索的谷歌,我发现下一个查询:
select tem.klantnr, count(*)
from(select klantnr from klant
union
select klantnr from bestelling where Year(besteldatum) = 2015 and Month(besteldatum) = 12) as tem
group by klantnr
不给我订单每个客户的计数。
MySQL或SQL Server,它RDBMS使用的是? – Sami
**为什么**你想用'UNION'做到这一点?你在寻找什么样的产出? (请提供样本数据和预期输出) – HoneyBadger
我不认为你需要一个工会,但是一个左连接。 – Peter