|
- declare @from_1 varchar(100)
- ---数据库备份, 数据库名字后加日期---
- set @from_1='ssss'+REPLACE(CONVERT(varchar(10), getdate()-1, 20), '-', '')+'.dbo.g_endStore_pos a'
- SELECT s_shopid.shopname ,a.code ,a.colorid ,c_jijmc, c_nianfmc,c_xilmc,sum(a.amount) as 数量 FROM @from_1
- LEFT JOIN s_shopid on a.shopid=s_shopid.shopid left join v_g_spdm b on a.code=b.code and a.colorid=b.colorid
- where a.shopid='000' and c_xilbh !='v' and amount<>0 group by s_shopid.shopname ,a.code ,a.colorid ,c_jijmc, c_nianfmc,c_xilmc
复制代码 以上代码错误,就是表达个意思。
我要取历史库存,如果用当前库存+期间的进销存,时间越靠前,数据量越大,
所以想了个办法:从某个备份的数据库中取库存(历史库存:该备份日期库存 + 我指定日期期间的进销存)
数据库名字是"ssss"+日期,网上学习了半天没有找到合适的方法,有个declare+set的方法可以实现,
但是这个方法不适用于有where条件的时候
像下面这个是可以运行的,但是是所有数据,不能像上面代码这样添加筛选条件
- declare @table varchar(100)
- declare @sql varchar(100)
- set @table='ssss'+REPLACE(CONVERT(varchar(10), '2022-08-17', 20), '-', '')+'.dbo.g_endStore_pos'
- set @sql='select * from '+@table
- exec(@sql)
复制代码 求大佬们伸出圆手!
|
|