Sql server 选择其他表中存在的行数并将其连接到SQL server表
我在SQL server中有两个表。第一个是客户信息表,第二个包括所有购买, 在第一个表中,我有我们客户的id,而采购表中有谁购买了该产品的id。那么,我如何选择所有客户表,其中包括他们购买产品的时间? 我试过这个Sql server 选择其他表中存在的行数并将其连接到SQL server表,sql-server,tsql,select,join,count,Sql Server,Tsql,Select,Join,Count,我在SQL server中有两个表。第一个是客户信息表,第二个包括所有购买, 在第一个表中,我有我们客户的id,而采购表中有谁购买了该产品的id。那么,我如何选择所有客户表,其中包括他们购买产品的时间? 我试过这个 SELECT TOP 2000 COUNT(tblpurchase.id) as id2,tblcustomers.* From tblpurchase right join on tblpurchase.id=tblcustomers.id 但他没有说什么。如何解决此问题?使
SELECT TOP 2000 COUNT(tblpurchase.id) as id2,tblcustomers.* From tblpurchase
right join on tblpurchase.id=tblcustomers.id
但他没有说什么。如何解决此问题?使用外部应用
SELECT TOP 2000 tblcustomers.* ,M.CustomerCount
From tblcustomers
OUTER APPLY(
SELECT COUNT(*) as CustomerCount
from tblpurchase
WHERE tblpurchase.CustomerIDColumn = tblcustomers.id
)M
此处
tblpourchase.CustomerIDColumn
使用customerID列的实际名称您也可以使用左连接
SELECT TOP 2000
C.*,
P.CustomerCount
From
tblcustomers C LEFT JOIN
(
SELECT
TP.CustomerId,
COUNT(*) as CustomerCount
FROM
tblpurchase TP
GROUP BY
TP.CustomerId
) P ON C.Id = P.CustomerId