0

私はこのテーブルを持っています:

MonthList (month_name, ticket)

特定の月の回数を取得したいと思います。

たとえば、第 2 四半期では、次のクエリを実行します。

SELECT month_name as 'Month', count('Month') as 'Ticket Count' from Monthlist
where month_name in ('May', 'June', 'July') 
group by Month order by Month asc

5月の行がない場合、5月は結果にまったく返されず、次のような結果が得られます。

6月5日

7月10日

上記のリストに も含めてMay 0ください。

4

1 に答える 1

0

このためには、月のテーブル (月の名前を含む) とチケットのテーブル (チケットを含む) の間で結合を実行することをお勧めします。

月には整数の ID があり、チケット テーブルには月テーブルへの列リンクがあります。

次に、次のような SQL クエリを実行します。

SELECT
    months.month_name AS 'Month',
    count(tickets.id) AS 'Ticket Count'
FROM
    months
LEFT JOIN
    tickets
ON
    tickets.month_id = months.id
GROUP BY
    months.id

これにより、チケット テーブルで再現するデータの量が減り、より柔軟になります。

上記のクエリはテストされていませんが、もちろん、データベースに必要なテーブルがある限り、それでうまくいくはずです。

月名を使用し、特定の月でフィルタリングする 2 番目の例。

SELECT
    months.month_name AS 'Month',
    count(tickets.id) AS 'Ticket Count'
FROM
    months
LEFT JOIN
    tickets
ON
    tickets.month_name = months.month_name
WHERE
    months.month_name IN ("May","June","July")
GROUP BY
    months.month_name
ORDER BY
    months.month_name ASC
于 2013-06-19T07:51:02.357 に答える