Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Jadual Tarikh Sementara dalam SQL Server 2000 dengan Jurang dalam Data?

Bagaimana untuk Menjana Jadual Tarikh Sementara dalam SQL Server 2000 dengan Jurang dalam Data?

Susan Sarandon
Susan Sarandonasal
2024-12-28 15:35:22215semak imbas

How to Generate a Temporary Date Table in SQL Server 2000 with Gaps in Data?

Menjana Jadual Tarikh Sementara dalam SQL Server 2000

Untuk mencipta jadual sementara yang diisi dengan julat tarikh dalam SQL Server 2000, satu alternatif pendekatan diperlukan apabila terdapat jurang dalam data yang tersedia. Penyelesaian berikut dibina berdasarkan soalan yang dikemukakan dan menyediakan panduan langkah demi langkah untuk menjana jadual sedemikian.

Pertama sekali, isytiharkan pembolehubah untuk menahan tarikh mula dan tamat:

declare $startDate set $startDate = select min(InsertDate) from customer
declare $endDate set $endDate = select max(InsertDate) from customer

Seterusnya, cipta jadual kekal untuk menyimpan semua tarikh dalam julat yang dikehendaki:

CREATE TABLE #Dates (
  Month DATE,
  Trials INTEGER,
  Sales INTEGER
)

Sekarang, isikan jadual menggunakan gelung WHILE yang menambah tarikh dengan satu hari sehingga tarikh tamat dicapai:

DECLARE @dIncr DATE = $startDate
DECLARE @dEnd DATE = $endDate

WHILE ( @dIncr < @dEnd )
BEGIN
  INSERT INTO #Dates (Month, Trials, Sales) VALUES(@dIncr, 0, 0)
  SELECT @dIncr = DATEADD(DAY, 1, @dIncr )
END

Akhir sekali, kumpulkan hasil mengikut bulan dan masukkan nilai pemegang tempat ke dalam jadual sementara:

insert #dates
select dbo.FirstOfMonth(InsertDate) as Month, 0 as Trials, 0 as Sales
from customer
group by dbo.FirstOfMonth(InsertDate)

Ini penyelesaian membenarkan penciptaan jadual sementara yang diisi dengan julat tarikh, walaupun terdapat jurang dalam set data asal.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Jadual Tarikh Sementara dalam SQL Server 2000 dengan Jurang dalam Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn