需求:完成每月的办公用品查询功能。每当有一个新人在系统中采购办公用品,则增加已ta名字为一列的采购清单,并计算出合计金额数量。
PS:之前做的,现在有空整理出来。
问题难点:新增的人数,姓名等不固定,导致查询结果集列不确定。
解决关键点:利用动态SQL,先用CTE表达式遍历出所有新增的人员姓名作为临时表,再将每个姓名作为列显示出来。
USE [fanruan]
GO
/****** Object: StoredProcedure [dbo].[office_statistics_02] Script Date: 03/19/2019 11:41:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[office_statistics_02]
@startdate datetime,
@enddate datetime
as
begin
--Author:xzx Date:2018/12/27
if not object_id(N'Tempdb..#temp_office_test') is null
drop table #temp_office_test
select
C.NAME as 姓名,
CASE WHEN A.field0011 = '3866602892125882902' THEN '老厂' ELSE '新厂' END as 领用地点,
CASE WHEN D.PATH like '0000000100010001%' THEN '财务部'
WHEN D.PATH like '0000000100010002%' THEN '人事部'
WHEN D.PATH = '00000