【问题标题】:Selecting count of exist rows in other table and join it to our SQL server table选择其他表中存在的行数并将其加入我们的 SQL 服务器表
【发布时间】:2016-11-23 12:45:30
【问题描述】:

我在 SQL Server 中有两个表。第一个是客户信息表,第二个包括所有购买, 在第一个表中,我有我们客户的 id,而购买表虽然有谁购买了该产品的 id。那么如何选择所有客户表,其中包括他们购买产品的次数? 我试过这个

SELECT TOP 2000 COUNT(tblpurchase.id)  as id2,tblcustomers.* From tblpurchase 
right join on tblpurchase.id=tblcustomers.id

但没有说话。我该如何解决这个问题?

【问题讨论】:

    标签: sql-server tsql select join count


    【解决方案1】:

    使用外部应用

    SELECT TOP 2000 tblcustomers.* ,M.CustomerCount
    From tblcustomers
    OUTER APPLY(
     SELECT COUNT(*) as CustomerCount
     from tblpurchase
     WHERE tblpurchase.CustomerIDColumn = tblcustomers.id
    )M
    

    这里tblpurchase.CustomerIDColumn使用customerID列的实际名称

    【讨论】:

      【解决方案2】:

      您也可以使用LEFT JOIN

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-22
        • 2021-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-27
        相关资源
        最近更新 更多