日期:2014-05-17  浏览次数:20529 次

一天一张表,表结构相同,作一个月数据统计,求SQL思路
一天创建一张表,表结构相同;但本人现在要做某一个月的数据统计,要求条件为每一张表中的列名username都等于输入的值!
求SQL语句思路
在线等……求高手们相助,在此谢过!

------解决方案--------------------
用动态的拼接语句

下面给你写个小例子
SQL code

declare @begin_date DATETIME,@end_time DATETIME ,@col VARCHAR(1000)
SELECT  @begin_date='2012-08-01',@end_time='2012-08-10',@col='id,name,time'

DECLARE @sql VARCHAR(max)
WHILE @begin_date<=@end_time
BEGIN 
SELECT @sql=ISNULL(@sql+CHAR(10)+'union all'+CHAR(10),'')+'select '+@col+' from tb_'+CONVERT(VARCHAR(8),@begin_date,112)
SET @begin_date=@begin_date+1
END 
PRINT @sql
EXEC(@sql)

------解决方案--------------------
用动态的拼接语句

下面给你写个小例子
SQL code

declare @begin_date DATETIME,@end_time DATETIME ,@col VARCHAR(1000)
SELECT  @begin_date='2012-08-01',@end_time='2012-08-10',@col='id,name,time'

DECLARE @sql VARCHAR(max)
WHILE @begin_date<=@end_time
BEGIN 
SELECT @sql=ISNULL(@sql+CHAR(10)+'union all'+CHAR(10),'')+'select '+@col+' from tb_'+CONVERT(VARCHAR(8),@begin_date,112)
SET @begin_date=@begin_date+1
END 
PRINT @sql
EXEC(@sql)