Sybase IQ中的宏/变量 - 更改字符串?

时间:2015-08-13 18:09:35

标签: macros sybase sybase-iq

我正在处理日期,在很多不同年份做select语句,如下所示:

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列是字符串。

1 个答案:

答案 0 :(得分: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'

在这里你去找朋友!干杯