[英]Can't get Sql Statement to work in a Case Statement
我正在嘗試將日期和星期幾插入表中。 該表應包含30天(星期日除外)。 我無法使case語句中的Insert起作用。 任何幫助將不勝感激。
Declare @StartDate as Date = DateAdd(day,-30,GetDate())
Declare @DOW varchar(10)
Declare @adddaycnt int
Declare @RecsWrite int
Set @RecsWrite = 0
Set @adddaycnt = 0
While @RecsWrite <= 30
Begin
Select @DOW = DateName(dw,DateAdd(dw,@adddaycnt,@startDate))
Select Case When @DOW <> 'Sunday' then
Insert Into temp_ProdSaleInv (ProdDate,DOW)
Values(
Convert(varchar(10),DateAdd(day, @adddaycnt,@startDate),101),
DateName(dw,DateAdd(dw, @adddaycnt,@startDate)
)
)
End
Select Case When @DOW <> 'Sunday' then
Set @RecsWrite = @RecsWrite + 1
Set @adddaycnt = @adddaycnt + 1
Else
Set @adddaycnt = @adddaycnt + 1
End
case語句無法像您編碼的那樣工作。 嘗試使用IF
代替。
Declare @StartDate as Date = DateAdd(day,-30,GetDate())
Declare @DOW varchar(10)
Declare @adddaycnt int
Declare @RecsWrite int
Set @RecsWrite = 0
Set @adddaycnt = 0
While @RecsWrite <= 30
Begin
Select @DOW = DateName(dw,DateAdd(dw,@adddaycnt,@startDate))
IF @DOW <> 'Sunday'
BEGIN
Insert Into temp_ProdSaleInv (ProdDate,DOW)
Values(
Convert(varchar(10),DateAdd(day, @adddaycnt,@startDate),101),
DateName(dw,DateAdd(dw, @adddaycnt,@startDate)
)
)
END
IF @DOW <> 'Sunday'
BEGIN
Set @RecsWrite = @RecsWrite + 1
Set @adddaycnt = @adddaycnt + 1
END
Else
BEGIN
Set @adddaycnt = @adddaycnt + 1
END
End
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.