2015-08-13 35 views
0

我處理日期相當多,做select之類的語句下面的許多不同的年份:Sybase IQ中的宏/變量 - 更改字符串?

select sum(sales) from DM.SALES_SHEET where sale_date < '1995-01-01'; 
select sum(sales) from DM.SALES_SHEET where sale_date < '1996-01-01'; 
select sum(sales) from DM.SALES_SHEET where sale_date < '1997-01-01'; 
... 

不應該有查詢這些數據的更有效的方法?我想創建一個變量,我可以在每次需要更新時再更新一次。這看起來有些像下面這樣(我不知道declare是否是正確的命令)。

declare @specific_date string; 
set @specific_date = '1995-01-01'; 

select sum(sales) from DM.SALES_SHEET where sale_date < @specific_date; 

有沒有辦法使用這種類型的變量的字符串?我的sale_date列是字符串。

回答

0

create procedure dynamic_date (@specific_date date) 
 
as 
 
begin 
 

 
declare @specific_date_string varchar(500) 
 
set @specific_date_string = 'select sum(sales) from DM.SALES_SHEET where sale_date < ' + @specific_date + ';' 
 
exec @specific_date_string 
 

 
end 
 

 
--example: exec dynamic_date 'your_date'

在這裏你去朋友!歡呼聲