1
SELECT 
    CH.ChannelName, COUNT(O.OrderID) AS Orders
FROM
    Channels CH
LEFT JOIN Programs P USING (ChannelID)
LEFT JOIN Codes C USING (ProgramID)
LEFT JOIN Order O USING (CodeID)
WHERE
    O.OrderDate = '2012-04-11'
GROUP BY 
    CH.ChannelName
WITH ROLLUP

このクエリは、注文のあるチャネルのみを返しています。特定のチャネルの注文テーブルに注文がない場合でも、すべてのチャネルを表示するにはどうすればよいですか? 基本的にはすべてのチャネルが表示され、そのチャネルに注文がない場合はゼロを表示する必要があります。

これに対する解決策はおそらく非常に簡単です。助けてくれてありがとう。

4

3 に答える 3

0
SELECT 
    CH.ChannelName, COUNT(O.OrderID) AS Orders
FROM
    Channels CH
LEFT JOIN Programs P USING (ChannelID)
LEFT JOIN Codes C USING (ProgramID)
LEFT OUTER JOIN Order O USING (CodeID)
WHERE
    O.OrderDate = '2012-04-11'
GROUP BY 
    CH.ChannelName
WITH ROLLUP
于 2012-04-12T16:11:56.713 に答える
0

これを試して:

SELECT CH.ChannelName, SUM(O.OrderDate = '2012-04-11') AS Orders
FROM Channels CH
LEFT JOIN Programs P USING (ChannelID)
LEFT JOIN Codes C USING (ProgramID)
LEFT JOIN Order O USING (CodeID)
GROUP BY CH.ChannelName
WITH ROLLUP
于 2012-04-12T16:14:47.550 に答える