Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Grup SQL berdasarkan hari, tampilkan pesanan untuk setiap hari

SQL bukan "melewati" tanggal... karena kueri dijalankan terhadap data yang sebenarnya ada di tabel. Jadi, jika Anda tidak memiliki DATE dalam tabel untuk 14 Januari, lalu mengapa SQL menunjukkan hasilnya kepada Anda :)

Yang perlu Anda lakukan adalah membuat tabel sementara, dan BERGABUNG dengannya.

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)

Ini dia!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara paling sederhana untuk melakukan self-join rekursif?

  2. Ubah varchar menjadi datetime di SQL Server

  3. java.sql.SQLException:SQL Server versi 8 tidak didukung oleh driver ini. Status SQL =08S01, Kode Kesalahan =0

  4. Gunakan beberapa kata dalam string input Pencarian Teks Penuh

  5. Bingung tentang UPDLOCK, HOLDLOCK