27,580
社区成员
发帖
与我相关
我的任务
分享
select 表1.name,count(表2.name)
from 表1
left join 表2 on 表2.name=表1.name and 表2.date='周一'
group by 表1.name
select 表1.name,count(表2.name)
from 表1 LEFT JOIN 表2 ON 表2.name=表1.name
where 表2.date='周一'
group by 表1.id,表1.NAME
order by 表1.id
在你的语句上,把JOIN改为Left Join就可以了,如果有错,就是你原本语句的错了
现在才发现你贴上来的语句都有问题
order写成了ordey~~
还有你的,表2.date=周一,date是储存什么样的数据呢?周一不是常量
你还是把你原本能执行的语句,贴出来,我帮你改下
或者你把JOIN改为Left Joinselect 表1.name,count(表2.name)
from 表1 LEFT JOIN 表2 ON 表2.name=表1.name
where 表2.date=周一
group by 表1.id,表1.NAME
ordey by 表1.id
LEFT JOIN 用左连接即可USE tempdb
GO
CREATE TABLE #TB1
(
ID INT,
NAME VARCHAR(50)
)
CREATE TABLE #TB2
(
NAME VARCHAR(50),
[Date] VARCHAR(50)
)
INSERT INTO #TB1
( ID, NAME )
VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d')
INSERT INTO #TB2
( NAME, Date )
VALUES ('a','周一'),('b','周一'),('a','周一'),('c','周一'),('a','周二'),('c','周二')
SELECT a.NAME,COUNT(b.NAME)
FROM #TB1 a
LEFT JOIN #TB2 b ON a.NAME = b.NAME AND b.[Date] = '周一'
GROUP BY ALL a.NAME