sql >> Databasteknik >  >> RDS >> Sqlserver

SQL gruppera efter dag, visa order för varje dag

SQL "hoppar" inte över datum... eftersom frågor körs mot data det står faktiskt i tabellen. Så, om du inte har ett DATUM i tabellen för den 14 januari, varför skulle SQL då visa dig ett resultat :)

Vad du behöver göra är att göra ett temporärt bord och GÅ MED till det.

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)

Varsågod!



  1. Hur kan jag effektivt söka efter sammanhängande uppsättningar datum i min datamängd?

  2. Vad motsvarar tidsstämpel/rowversion (SQL Server) med PostgreSQL

  3. Kolumn Ej tillåten fel vid infogning av rader med sekvensvärden

  4. Gruppera efter månad, returnera 0 om ingen post hittas