Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Jadual Julat Tarikh Lengkap dalam SQL Server 2000 Walaupun Jurang dalam Data Sumber?

Bagaimana untuk Menjana Jadual Julat Tarikh Lengkap dalam SQL Server 2000 Walaupun Jurang dalam Data Sumber?

Patricia Arquette
Patricia Arquetteasal
2024-12-21 07:13:09508semak imbas

How to Generate a Complete Date Range Table in SQL Server 2000 Despite Gaps in Source Data?

Menjana Jadual Julat Tarikh Sementara dalam SQL Server 2000

Keperluan anda untuk mencipta jadual sementara dengan tarikh antara $startDate hingga $endDate dan pemegang tempat bernilai sifar tambahan lajur memberikan cabaran kerana kemungkinan jurang dalam tarikh sisipan jadual pelanggan.

Kepada mengatasi ini, pertimbangkan pendekatan berikut:

  1. Isytiharkan Julat Pembolehubah: Seperti yang telah anda lakukan, gunakan pengisytiharan berikut untuk menangkap tarikh sisipan minimum dan maksimum:

    declare $startDate set $startDate = select min(InsertDate) from customer
    declare $endDate set $endDate = select max(InsertDate) from customer
  2. Buat Tarikh Dummy Jadual: Menggunakan skema jadual sementara anda, buat jadual dummy dengan tarikh dari $startDate hingga $endDate menggunakan gelung:

    CREATE TABLE #dates (
     Month DATE,
     Trials INT DEFAULT 0,
     Sales INT DEFAULT 0
    );
  3. Isi Tarikh Dummy Jadual: Untuk memastikan kesempurnaan, gunakan kursor untuk menggelungkan julat tarikh dari $startDate hingga $endDate, memasukkan setiap tarikh ke dalam jadual dummy:

    DECLARE @d DATE = $startDate;
    
    WHILE @d <= $endDate
    BEGIN
     INSERT INTO #dates (Month) VALUES (@d);
     SET @d = DATEADD(DAY, 1, @d);
    END;

Pendekatan ini secara dinamik menjana julat lengkap tarikh dalam julat yang ditentukan, tanpa mengira jurang dalam jadual pelanggan. Anda kemudiannya boleh menggunakan jadual dummy ini sebagai sumber untuk mengisi jadual julat tarikh sementara anda.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Jadual Julat Tarikh Lengkap dalam SQL Server 2000 Walaupun Jurang dalam Data Sumber?. 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