Gunakan datetime sebagai alias kolom di SQL Server 2000

Semoga ini yang cepat untuk seseorang! Saya telah mencari beberapa saat tanpa jawaban nyata atas pertanyaan itu. Saya memiliki prosedur tersimpan di SQL Server 2000. Saya memiliki variabel @DayToCheck yang merupakan datetime.

@DayToCheck datetime

Saya perlu menggunakannya untuk kolom yang saya andalkan. Namun itu tidak berhasil. Saya telah mencoba mengonversi ke varchar, tetapi tidak juga. Inilah dua kolom hitungan yang perlu saya gunakan.

sum(case when startdate=@DayToCheck then 1 else 0 end) as CONVERT(varchar, @DayToCheck, 103),
sum(case when startdate=DATEADD(day,-7,@DayToCheck) then 1 else 0 end) as DATEADD(day,-7,@DayToCheck)

Jadi di atas harus memiliki dua kolom dan aliasnya harus berupa tanggal (untuk kolom satu) dan -7 hari libur dari tanggal untuk kolom dua.

Terima kasih atas bantuannya!


person Matt Facer    schedule 10.05.2012    source sumber
comment
Anda harus melakukan ini dalam sql dinamis   -  person Arion    schedule 10.05.2012


Jawaban (1)


Anda harus menggunakan sql dinamis. Jadi mungkin seperti ini:

DECLARE @DayToCheck datetime
SET @DayToCheck=GETDATE()

DECLARE @query NVARCHAR(4000)
SET @query=
N'SELECT
    sum(case when startdate=@DayToCheck then 1 else 0 end) as '+
    CONVERT(varchar, @DayToCheck, 103)+',
    sum(case when startdate=DATEADD(day,-7,@DayToCheck) then 1 else 0 end) as '+
    CONVERT(varchar, @DayToCheck, 103)+'
FROM
    table1'

EXECUTE(@query)
person Arion    schedule 10.05.2012