如图所示,现在有一个需求,主要是按当前年份查询仓库每一个月的库存流水和配件的库存占比情况
其要求如下:
控件 | 类型 | 长度 | 备注 |
查询条件 |
|
|
|
服务站 |
|
| 服务站的查询条件 数据来源:可用的服务站档案 必选,可以多选 |
配件名称 |
|
| 配件名称的查询条件 数据来源:可用的产品物料数据 必选,可以多选 |
年度 | Picklist |
| 前五年后十年的范围,单选 |
显示信息 |
|
| 查询结果 |
标题 | Expression |
| 表达式,显示“【参数年度所选值】年度客户回款报表“ |
服务站 |
|
| 显示服务站名称,此列为行分组。 数据来源:出库单实体 |
发货仓库 |
|
| 数据来源:出库单实体 |
配件名称 |
|
| 显示配件名称值,此列为行分组。 字体显示蓝色,下划线效果 数据来源:出库单明细实体 |
数量 |
|
| 数据来源:出库单明细实体 |
月份 |
|
| 数据来源:出库单实体创建时间 |
显示结果 |
|
| 排序:一级行分组按服务站名称排序,二级按配件名称正序排序 显示列:服务站,发货仓库,配件名称,数量,每月总数。 显示规则:所有数字显示精确到两位小数。
|
总计 |
|
| 针对本报表的汇总统计:配件一年内申请数量总和。 |
SQL语句如下:
DECLARE @userid uniqueidentifier = '9FC299F4-6E20-EA11-A12B-000C29D7F690'SET context_info = @userid
SELECT DISTINCT so.new_station_idname, so.new_recstocksite_idname, sod.new_product_idname
, convert(int, SUM(sod.new_applyqty)) AS qty
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 1 THEN sod.new_applyqty
ELSE 0
END)) AS '1month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 2 THEN sod.new_applyqty
ELSE 0
END)) AS '2month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 3 THEN sod.new_applyqty
ELSE 0
END)) AS '3month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 4 THEN sod.new_applyqty
ELSE 0
END)) AS '4month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 5 THEN sod.new_applyqty
ELSE 0
END)) AS '5month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 6 THEN sod.new_applyqty
ELSE 0
END)) AS '6month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 7 THEN sod.new_applyqty
ELSE 0
END)) AS '7month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 8 THEN sod.new_applyqty
ELSE 0
END)) AS '8month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 9 THEN sod.new_applyqty
ELSE 0
END)) AS '9month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 10 THEN sod.new_applyqty
ELSE 0
END)) AS '10month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 11 THEN sod.new_applyqty
ELSE 0
END)) AS '11month'
, convert(int, SUM(CASE
WHEN datepart(month, so.createdon) = 12 THEN sod.new_applyqty
ELSE 0
END)) AS '12month'
FROM Filterednew_zh_stockoutorder so, Filterednew_zh_stockoutorderdetail sod, Filterednew_srv_siteinv s
WHERE so.new_station_idname IN (@station)
AND sod.new_product_idname IN (@productname)
AND datepart(year, so.createdon) = @year
AND so.new_recstocksite_id = s.new_stocksite_id
AND sod.new_product_id = s.new_product_id
AND so.new_zh_stockoutorderid = sod.new_stockoutorder_id
GROUP BY so.new_station_idname, so.new_recstocksite_idname, sod.new_product_idname
查询结果如下: