Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 已联接表中的列计数,但包含零(无法使左联接正常工作)_Sql_Sql Server_Join_Select_Left Join - Fatal编程技术网

Sql 已联接表中的列计数,但包含零(无法使左联接正常工作)

Sql 已联接表中的列计数,但包含零(无法使左联接正常工作),sql,sql-server,join,select,left-join,Sql,Sql Server,Join,Select,Left Join,我必须坐在桌子上。一个用户名为Actor,另一个命令名为Ord 每个订单可以分配给一个用户,但并非所有订单都分配了用户 我想做一个select语句,返回我的所有用户,并显示分配给每个用户的订单数量。包括未分配订单的用户 很简单,但由于某种原因我不能让它工作 到目前为止,我得到的是: SELECT Usr, COUNT(Ord.OrdNo) FROM Actor LEFT JOIN Ord on Actor.EmpNo = Ord.Rsp WHERE Actor.Gr2 <>

我必须坐在桌子上。一个用户名为Actor,另一个命令名为Ord

每个订单可以分配给一个用户,但并非所有订单都分配了用户

我想做一个select语句,返回我的所有用户,并显示分配给每个用户的订单数量。包括未分配订单的用户

很简单,但由于某种原因我不能让它工作

到目前为止,我得到的是:

SELECT Usr, COUNT(Ord.OrdNo)
FROM Actor
    LEFT JOIN Ord on Actor.EmpNo = Ord.Rsp
WHERE Actor.Gr2 <> 9
    AND Actor.R1 = 10
    AND Ord.OrdTp = 6
    AND Ord.OrdPrSt2 != 0x10
GROUP BY Actor.Usr
表:订单

OrdNo    Rsp
----------------
555551   123
555552   123
555553   124
555554   126
这就是我想要的回报:

Usr      Count
----------------
123      2
124      1
125      0
126      1
但我得到的却是:

Usr      Count
----------------
123      2
124      1
126      1

那么我遗漏了什么呢?

将Ord条件从何处移动到ON,以获得真正的左连接结果:


如果没有where条件,我将获得期望的结果。以下是我运行的代码:

选择a.empno, countordrno 从演员a左连接到演员b 在a.empno=b.rsp上
按a.empno分组

只需使用左外连接而不是左外连接JOIN@HasanGholamali,同样的事情……就是这样!谢谢您:
Usr      Count
----------------
123      2
124      1
126      1
SELECT Usr, COUNT(Ord.OrdNo)
FROM Actor
    LEFT JOIN Ord on Actor.EmpNo = Ord.Rsp
        AND Ord.OrdTp = 6
        AND Ord.OrdPrSt2 != 0x10
WHERE Actor.Gr2 <> 9
    AND Actor.R1 = 10
GROUP BY Actor.Usr