Declare
@date1 date = '2015-12-01'
,@date2 date = '2015-12-30'
BEGIN
Declare @date_u char = Month(@date1)
,@date_v char = Month(@date2)
Select
STD.StoreNo As StoreNo
,CheckDate as Date
,ProductBarCode as ProductBarCode
,SUM( StocktakingQty)AS ProducQty
From StockTakingDetail STD
Inner Join
(Select StoreNo,CheckNo,CheckDate
From StockTakingMain SM )StocktakingMain
On STD.CheckNo =StockTakingMain.CheckNo
where year(CheckDate) between @date_u and @date_v
group By STD.StoreNo,STD.ProductBarCode,CheckDate
End
实际上,我想显示每日库存,但只显示每月一次。
他们用来在仓库中盘点。没有数据,我无法填补日期空白。因此,我计划仅使用月份和年份来获取数据。但是,我无法找到一种方法,仅从日期和月份开始采用输入参数。
有人可以帮忙吗?
最佳答案
您是否希望您的where
子句看起来像这样?
where year(CheckDate) * 100 + month(CheckDate) between year(@date1) * 100 + month(@date1) and
year(@date2) * 100 + month(@date2)
如果是这样,我真的会去:
where CheckDate >= date_sub(@date1, interval 1 - day(@date1)) and
CheckDate < date_add(date_sub(@date2, interval 1 - day(@date2)), interval 1 month)