Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak mogę zsumować wartości na dzień, a następnie wykreślić je w kalendarzu od daty rozpoczęcia do ostatniej daty?

Innym sposobem wygenerowania zakresu dat, którego szukasz, byłoby coś w stylu .....

;WITH DateLimits AS
 (
    SELECT MIN(First_Date)   FirstDate
          ,MAX(Last_Update) LastDate
    FROM TableName 
 ),
DateRange AS 
(
 SELECT TOP (SELECT DATEDIFF(DAY,FirstDate,LastDate ) FROM DateLimits)
         DATEADD(DAY
              ,ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
              , (SELECT FirstDate FROM DateLimits) 
              ) AS Dates

 FROM master..spt_values a cross join master..spt_values b 
)
SELECT * FROM DateRange   --<-- you have the desired date range here
                             -- other query whatever you need.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest protokół TDS w wersji 8.0 i dlaczego powinienem go używać?

  2. Nie można wstawić rekordu z procedury składowanej wywołanej z usługi sieciowej

  3. SQL 2008:Wyłącz słowa stop dla zapytania wyszukiwania pełnotekstowego

  4. Rozsądna/szybka metoda przekazywania list parametrów zmiennych do procedury składowanej SqlServer2008

  5. Zapytanie SQL nie używa dostępnego indeksu (SQL Server 2008)