1

テーブルがあると仮定します

Order(customerId,orderDetails...) 
Customer(Id, customerDetails...)

Count(customer)xCount(order)ペアを照会する最も簡単な方法は何ですか?

お客様:

ID | Name
---------
1  | Bob
2  | Ann

注文

CustomerId | Address
--------------------
 1         | Block1
 1         | Block2
 1         | Block1
 2         | Home Address

取得したいです

CustomerCount | OrderCount
--------------------------
     1        |    3
     1        |    1
4

2 に答える 2

2

どうですか

        SELECT DISTINCT COUNT(DISTINCT c.ID) AS CustomerCount
               , COUNT(*) AS OrderCount
        FROM   Customer AS c
               INNER JOIN [Order] AS o ON o.customerID = c.ID
        GROUP BY
              c.ID

SQLフィドル

編集

考えてみると、前のステートメントはこれに還元することができます

        SELECT DISTINCT 1 AS CustomerCount
               , COUNT(*) AS OrderCount
        FROM   Customer AS c
               INNER JOIN [Order] AS o ON o.customerID = c.ID
        GROUP BY
              c.ID

しかし、それは私の最初の声明が最初から間違っているというしつこい感じを私に与えます

于 2012-05-31T06:14:39.597 に答える
0
select order.id, count(.CustomerId )
from Order order left join Customer customer on order.id = customer.CustomerId 
group by order.id
于 2012-05-31T06:24:35.413 に答える