sql >> データベース >  >> RDS >> Sqlserver

日ごとのSQLグループ、日ごとの注文を表示

    SQL は日付を「スキップ」しません...クエリは data に対して実行されるためです それは実際に表にあります。したがって、テーブルに 1 月 14 日の DATE がない場合、なぜ SQL は結果を表示するのでしょうか :)

    あなたがする必要があるのは、一時テーブルを作成し、そこに結合することです.

    CREATE TABLE #MyDates ( TargetDate DATETIME )
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 0, 101))
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 1, 101))
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 2, 101))
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 3, 101))
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 4, 101))
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 5, 101))
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 6, 101))
    INSERT INTO #MyDates VALUES CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE() - 7, 101))
    
    SELECT CONVERT(VARCHAR, TargetDate, 101) AS Date, COUNT(*) AS OrderCount
    FROM dbo.Orders INNER JOIN #MyDates ON Orders.Date = #MyDates.TargetDate
    GROUP BY blah blah blah (you know the rest)
    

    どうぞ!



    1. MySQL2つのフィールドでテーブルを結合する方法

    2. PostgreSQL multi INSERT...RETURNINGと複数の列

    3. 複雑な「ギャップと島」の問題

    4. IPアドレス範囲で一致するMySQL詳細レコードの要約-mySQLJediKnightが必要