以下代码从11个表中返回数据。每个表格包含年份和月份。我需要使用enddate参数来检查是否只有表格todate被拉出。因此,如果用户从201505想要的数据应该 撤出所有表只能做到201509从201510个表不存在假设我们在下面201510.代码的一个月:返回当前月份之前的数据
{
declare
@enddate varchar(6),
@FirstTableMonth int =201505,
@Table_Name sysname,
@TableMonth int,
@end int,
@CurrentMonth int = 0,
@NextYearMonth int = 1
set @enddate = 201611
WHILE @CurrentMonth < 11
BEGIN
SELECT @TableMonth = CASE WHEN (@FirstTableMonth + @CurrentMonth) % 100 < 13 THEN
@FirstTableMonth + @CurrentMonth
ELSE
@FirstTableMonth + 100 - (@FirstTableMonth % 100) + @NextYearMonth
END,
@NextYearMonth = CASE WHEN (@FirstTableMonth + @CurrentMonth) % 100 < 13 THEN
@NextYearMonth
ELSE
@NextYearMonth + 1
END,
@end = case when @enddate
@Table_Name = 'xx_'+CAST(@TableMonth as varchar)+'_T'
SET @CurrentMonth = @CurrentMonth + 1
print @Table_Name;
END
}
请标记使用DBMS。 (看起来不像ANSI SQL。) – jarlh
为什么你对同一类型的数据有不同的表?那看起来很可怕。应该只有一个表。如果可能的话改变它。然后检索数据将非常简单。 –
我没有创建数据结构 –