22,207
社区成员
发帖
与我相关
我的任务
分享
AND EXISTS (select 1 from dbo.uf_split_string(@分类,',') a where t.c_ccode like a.c_str+'%')
AND EXISTS (select 1 from dbo.uf_split_string(@机构代码,',') a where c_store_id like a.c_str+ '%' )
and (ISNULL(@商品编码,'')='' or exists (select 1 from dbo.uf_split_string(@商品编码,',') a where t.c_gcode like a.c_str+'%' )
SELECT c_store_id + s.c_sname AS 机构,
c_adno AS 部门,
c_ccode AS 商品类别,
c_gcode AS 商品编码,
t.c_name AS 商品名称,
SUM(
CASE
WHEN DATEDIFF(DAY, t.c_dt, @StartDate_Cur) <= 0
AND DATEDIFF(DAY, t.c_dt, @EndDate_Cur) >= 0 THEN c_number_sale ELSE 0 END
) AS 当期销售数量,
SUM(
CASE
WHEN DATEDIFF(DAY, t.c_dt, @StartDate_Cur) <= 0
AND DATEDIFF(DAY, t.c_dt, @EndDate_Cur) >= 0 THEN 0 ELSE c_number_sale END
) AS 比较期销售数量,
SUM(
CASE
WHEN DATEDIFF(DAY, t.c_dt, @StartDate_Cur) <= 0
AND DATEDIFF(DAY, t.c_dt, @EndDate_Cur) >= 0 THEN c_sale ELSE 0 END
) AS 当期销售金额,
SUM(
CASE
WHEN DATEDIFF(DAY, t.c_dt, @StartDate_Cur) <= 0
AND DATEDIFF(DAY, t.c_dt, @EndDate_Cur) >= 0 THEN 0 ELSE c_sale END
) AS 比较期销售金额,
SUM(
CASE
WHEN DATEDIFF(DAY, t.c_dt, @StartDate_Cur) <= 0
AND DATEDIFF(DAY, t.c_dt, @EndDate_Cur) >= 0 THEN c_at_sale ELSE 0 END
) AS 当期销售成本,
SUM(
CASE
WHEN DATEDIFF(DAY, t.c_dt, @StartDate_Cur) <= 0
AND DATEDIFF(DAY, t.c_dt, @EndDate_Cur) >= 0 THEN 0 ELSE c_at_sale END
) AS 比较期销售成本
FROM (
--当期数据
SELECT c_store_id,
c_adno,
c_ccode,
c_gcode,
t.c_name,
c_dt,
c_number_sale,
c_sale,
c_at_sale
FROM tbs_d_gds t(NOLOCK)
WHERE t.c_dt >= @StartDate_Cur
AND t.c_dt < @EndDate_Cur
AND EXISTS (
SELECT 1
FROM dbo.uf_split_string(@分类, ',') a
WHERE t.c_ccode LIKE a.c_str + '%'
)
AND EXISTS (
SELECT 1
FROM dbo.uf_split_string(@机构代码, ',') a
WHERE c_store_id LIKE a.c_str + '%'
)
AND (
ISNULL(@商品编码, '') = ''
OR EXISTS (
SELECT 1
FROM dbo.uf_split_string(@商品编码, ',') a
WHERE t.c_gcode LIKE a.c_str + '%'
)
)
UNION ALL
--比较期
SELECT c_store_id,
c_adno,
c_ccode,
c_gcode,
t.c_name,
c_dt,
c_number_sale,
c_sale,
c_at_sale
FROM tbs_d_gds t(NOLOCK)
WHERE t.c_dt >= @StartDate_Old
AND t.c_dt < @EndDate_Old
AND EXISTS (
SELECT 1
FROM dbo.uf_split_string(@分类, ',') a
WHERE t.c_ccode LIKE a.c_str + '%'
)
AND EXISTS (
SELECT 1
FROM dbo.uf_split_string(@机构代码, ',') a
WHERE c_store_id LIKE a.c_str + '%'
)
AND (
ISNULL(@商品编码, '') = ''
OR EXISTS (
SELECT 1
FROM dbo.uf_split_string(@商品编码, ',') a
WHERE t.c_gcode LIKE a.c_str + '%'
)
)
)t
LEFT JOIN tb_store s
ON t.c_store_id = s.c_id
GROUP BY
c_store_id,
c_adno,
c_ccode,
c_gcode,
t.c_name,
s.c_sname
帮你格式化一下