存储过程新方法萌芽 *——*

  1 alter procedure [LC0019999].[pro_zlzjzxzb]
  2 
  3 @dw   varchar(88),
  4 @ksrq varchar(8),
  5 @jsrq varchar(8)
  6 
  7 as 
  8 begin
  9 create table #T_01
 10 (
 11     F_01 varchar(8),    /*单位编号*/
 12     F_02 varchar(8),    /*单据类型*/
 13     F_03 varchar(60),    /*账户编号*/
 14     F_04 varchar(8),    /*账户类型*/
 15     F_05 varchar(8),    /*账户组*/
 16     F_06 varchar(60),    /*对方账户*/
 17     F_0601 varchar(8),    /*对方单位*/
 18     F_07 DECIMAL(18,4),    /*增加额*/
 19     F_08 DECIMAL(18,4),    /*减少额*/
 20     F_09 DECIMAL(18,4),    /*调拨额*/
 21 
 22     F_0101 varchar(80),    /*单位名称*/
 23     F_10 DECIMAL(18,4),    /*上周账户余额*/
 24     F_11 DECIMAL(18,4), /*内部户*/
 25     F_12 DECIMAL(18,4), /*归集行*/
 26     F_13 DECIMAL(18,4),    /*其他账户*/
 27     F_14 DECIMAL(18,4),    /*合计*/
 28     F_15  VARCHAR(4),    /*货币编号*/
 29     F_16  VARCHAR(8),    /*货币名称*/
 30     F_17  DECIMAL(18,4),/*汇率*/
 31 
 32 
 33     F_20 varchar(8)
 34 )
 35 (SELECT  LSBZDW.LSBZDW_DWBH hsdw into #hsdw FROM LSBZDW LSBZDW WHERE  
 36         ( LSBZDW.LSBZDW_DWBH IN (SELECT  DISTINCT AO_DATA FROM GSPAURESULT WHERE BIZOBJID='GlobalId' AND BIZOPID='GlobalId' AND AO_ID='GSP_SCF_LSBZDW' AND 
 37         OWNERID=@dw) ) )
 38 
 39 INSERT INTO #T_01
 40 select 
 41 zjzh_dwbh F_01,'' F_02,zjzh_zhbh F_03,zjzh_lxbh F_04,zjzh_zhz F_05,'' F_06,'' F_0601,0 F_07,0 F_08,0 F_09,lsbzdw_dwmc F_0101,
 42 0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'000' F_20
 43 from zjzh 
 44 left join lsbzdw on zjzh_dwbh=lsbzdw_dwbh
 45 left join zjzhxz ON zjzh_XZBH=ZJZHXZ_XZBH
 46 where   ZJZH_DWBH in (select hsdw from #hsdw )
 47 
 48 INSERT INTO #T_01
 49 select 
 50 zjzh_DWBH F_01,rq F_02,zjzh_zhbh F_03,zjzh_nwbz F_04,zjzh_zhz F_05,zjzh_lxbh F_06,'' F_0601,0 F_07,0 F_08,dqye F_09,lsbzdw_dwmc F_0101,
 51 0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,bzbh F_15,'' F_16,0 F_17,'YE00' F_20
 52 from(
 53 select zjyhzhyeb_rq rq,zjyhzhyeb_zhnm,zjzh_zhbh,zjzh_mc,zjzh_nwbz,zjzh_XZBH,ZJZHXZ_XZMC,zjzh_DWBH,LSBZDW_DWMC,zjzh_lxbh,zjzh_zhz,
 54 zjzhz_mc,zjyhzhyeb_bz bzbh,lswbzd_bzmc,zjyhzhyeb_dqye dqye  
 55 from  zjzh
 56 inner join zjyhzhyeb on zjzh_zhnm=zjyhzhyeb_zhnm
 57 inner join LSBZDW ON zjzh_DWBH=LSBZDW_DWBH
 58 inner join zjzhxz ON zjzh_XZBH=ZJZHXZ_XZBH
 59 inner join zjzhz  on zjzhz_zhzbh=zjzh_zhz 
 60 inner join lswbzd  on   lswbzd_bzbh=zjyhzhyeb_bz
 61 where 1=1
 62 and zjyhzhyeb_rq between dateadd(d,-1,@ksrq) and  @jsrq 
 63 and ZJZH_DWBH in (select hsdw from #hsdw )
 64 union all
 65 select zjzhryeb_rq rq,zjzhryeb_zhnm,zjzh_zhbh,zjzh_mc,zjzh_nwbz,zjzh_XZBH,ZJZHXZ_XZMC,zjzh_DWBH,LSBZDW_DWMC,zjzh_lxbh,zjzh_zhz,
 66 zjzhz_mc,zjzhryeb_bzbh bzbh,lswbzd_bzmc,abs(zjzhryeb_qcye) dqye 
 67 from  zjzh
 68 inner join zjzhryeb on zjzh_zhnm=zjzhryeb_zhnm and zjzh_nwbz='0'
 69 inner join LSBZDW ON zjzh_DWBH=LSBZDW_DWBH
 70 inner join zjzhxz ON zjzh_XZBH=ZJZHXZ_XZBH
 71 inner join lswbzd  on   lswbzd_bzbh=zjzhryeb_bzbh
 72 inner join zjzhz  on zjzhz_zhzbh=zjzh_zhz  
 73 where 1=1
 74 and zjzhryeb_rq between dateadd(d,-1,@ksrq) and @jsrq
 75 and ZJZH_DWBH in (select hsdw from #hsdw )
 76 ) yeb
 77 
 78 
 79 INSERT INTO #T_01
 80 SELECT 
 81 zh.zjzh_dwbh F1,zjjsdj_djlx F2,zh.ZJZH_ZHBH F3,zh.zjzh_lxbh F4,zh.zjzh_zhz F5,ZJJSDJ_DFZH F6,df.zjzh_dwbh F61,
 82 isnull(SUM(CASE  WHEN ZJJSDJ_DJLX IN ('01','06','07','11','15') THEN ZJJSDJ_JE  END),0) F7,
 83 isnull(SUM(CASE  WHEN ZJJSDJ_DJLX IN ('02','05','09','12','15') THEN ZJJSDJ_JE  END),0) F8,
 84 isnull(SUM(CASE  WHEN ZJJSDJ_DJLX IN ('15') THEN ZJJSDJ_JE  END),0)     F9,
 85 LSBZDW_DWmc F_0101,0 F_10,0 F11,0 F_12,0 F_13,0 F_14,zjjsdj_yhbz F_15,'' F_16,1 F_17,
 86 '0' F20 
 87 FROM ZJZH zh
 88 LEFT JOIN ZJJSDJ ON ZJZH_ZHNM=ZJJSDJ_YHZH  OR ZJZH_ZHNM=ZJJSDJ_NBZH
 89 left join zjzh DF on df.zjzh_zhbh=zjjsdj.zjjsdj_dfzh
 90 left join LSBZDW ON zh.zjzh_DWBH=LSBZDW_DWBH
 91 left join zjzhxz ON zh.zjzh_XZBH=ZJZHXZ_XZBH
 92 WHERE 1=1
 93 and ZJJSDJ_DJZT='11'    
 94 AND zjjsdj_ywrq>=@ksrq   
 95 and zjjsdj_ywrq<=@jsrq
 96 and zh.ZJZH_DWBH in (select hsdw from #hsdw )
 97 GROUP BY zh.zjzh_dwbh,zjjsdj_djlx,zh.ZJZH_ZHBH,ZJJSDJ_DFZH,zh.zjzh_lxbh,zh.zjzh_zhz,df.zjzh_dwbh,LSBZDW_DWmc,zjjsdj_yhbz,zh.zjzh_XZBH,ZJZHXZ_XZMC
 98 
 99 /*---汇率------------------------------------------------------*/
100 insert into #T_01
101 select 
102 '' F_01,'' F_02,'' F_03,'' F_04,'' F_05,'' F_06,'' F_0601,0 F_07,0 F_08,0 F_09,'' F_0101,
103 0 F_10,0 F_11,0 F_12,0 F_13,isnull(hl.lshl_hl,1) F_14,LSWBZD_BZbh F_15,LSWBZD_BZMC F_16,isnull(hl.lshl_qmhl,1) F_17,'HL00' F_20
104 from LSWBZD zd
105 left join LSHLLX2015 lx on zd.LSWBZD_BZbh= lx.lshllx_ybz
106 left join  LSHL2015 hl on lx.LSHLLX_BH=hl.lshl_bh
107 WHERE LSHL_QJXH='08' or zd.LSWBZD_BZbh='01'
108 
109 update #T_01 set F_14=HL.F_14,F_16=HL.F_16,F_17=HL.F_17 
110 from  #T_01 A,(select * from #T_01 B  where  B.F_20='HL00') HL  where  A.F_20 in ('0','YE00') and A.F_15=HL.F_15
111 
112 --select top 1 * from #T_01 where F_20 in ('0','YE00')  and F_15<>'01' and F_01='huaqi' and F_03='3602000109200173293'
113 update #T_01 set F_07=F_07*F_17,F_08=F_08*F_17,F_09=F_09*F_17 where F_20 in ('0','YE00')
114 --select top 1 * from #T_01 where F_20 in ('0','YE00')  and F_15<>'01'  and F_01='huaqi'   and F_03='3602000109200173293'
115 
116     /*---上周账户余额-----*/
117 insert into #T_01
118 select F_01,'','','','','','',0,0,sum(F_09),F_0101,sum(F_09) F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'YE01' F_20
119 from #T_01 where F_02=dateadd(d,-1,'20150810') and F_20='YE00'  and F_01<>'jszx' group by F_01,F_0101
120     /*---内部户-----*/
121 insert into #T_01
122 select F_01,'','','','','','',0,0,sum(F_09),F_0101,0 F_10,sum(F_09) F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'YE02' F_20
123 from #T_01 where F_02='20150816' and F_04='0' and F_20='YE00'  and F_01<>'jszx' group by F_01,F_0101
124     /*---归集行-----*/
125 insert into #T_01
126 select F_01,'','','','','','',0,0,sum(F_09),F_0101,0 F_10,0 F_11,sum(F_09) F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'YE03' F_20 
127 from #T_01 where F_02='20150816' and F_05 in ('01','02','06','07') and F_20='YE00'  and F_01<>'jszx' group by F_01,F_0101
128     /*---其他户-----*/
129 insert into #T_01
130 select F_01,'','','','','','',0,0,sum(F_09),F_0101,0 F_10,0 F_11,0 F_12,sum(F_09) F_13,0 F_14,'' F_15,'' F_16,0 F_17,'YE04' F_20
131 from #T_01 where F_02='20150816' and F_05='04' and F_20='YE00'  and F_01<>'jszx' group by F_01,F_0101
132 
133 
134 
135     /*---1. +调拨-----------------------------------*/
136 insert into #T_01
137 select F_01,'','','','','','',sum(F_07),sum(F_08),sum(F_09),F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'1' F_20
138     from #T_01 where F_20='0'  and F_01<>'jszx'  group by F_01,F_0101
139 union all
140 select F_01,'','','','','','',sum(F_07),sum(F_08),sum(F_09),F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'20' F_20 
141     from #T_01  where F_20='0' and F_04='08' and F_05='03'  and F_01<>'jszx'  group by F_01,F_0101  /**/
142 
143     /*---2.本周增+减---------------------*/
144 insert into #T_01
145 select F_01,'','','','','','',-abs(sum(F_07+F_08)),-abs(sum(F_07+F_08)),0,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'2' F_20
146 from #T_01 where F_20='20'  and F_01<>'jszx' group by F_01,F_0101
147 
148     /*---3.本企业内部银行账户转账-----------------*/
149 insert into #T_01
150 select F_01,'','','','','','',sum(F_07),0,0,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'31' F_20
151 from #T_01 where F_02 in ('01','11','15') and F_0601=F_01 and F_20='0'  and F_01<>'jszx' group by F_01,F_0101
152 union all
153 select F_01,'','','','','','',0,sum(F_08),0,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'31' F_20 
154 from #T_01 where F_02 in ('02','12','15') and F_0601=F_01 and F_20='0'  and F_01<>'jszx' group by F_01,F_0101
155 insert into #T_01
156 select F_01,'','','','','','',-abs(sum(F_07)),-abs(sum(F_08)),0,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'3' F_20 
157 from #T_01 where F_20='31' group by F_01,F_0101
158 
159     /*---4.汇总  4---------------------------------*/
160 insert into #T_01
161 select F_01,'','','','','','',sum(F_07),sum(F_08),0,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'4' F_20 
162 from #T_01 where F_20 in ('1','2','3') group by F_01,F_0101
163 
164     /*---5.汇总 增加、减少额、上周余额、内部... 5---------------------------------*/
165 insert into #T_01
166 select F_01,'','','','','','',sum(F_07),sum(F_08),0,F_0101,sum(F_10),sum(F_11),SUM(F_12),sum(F_13),Sum(F_14),'' F_15,'' F_16,0 F_17,'5' F_20 
167 from #T_01 where F_20 in ('4','YE01','YE02','YE03','YE04')  group by F_01,F_0101
168 
169 
170 /*==========JSZX=====================*/
171 
172 INSERT INTO #T_01
173 select F_01,F_02,F_03,F_04,F_05,F_06,F_0601,F_07,F_08,F_09,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'JSZXYE' F_20 
174 from #T_01 where F_01 ='jszx' and F_06='03'  and F_20 in ('YE00')
175 UNION ALL
176 select F_01,F_02,F_03,F_04,F_05,F_06,F_0601,F_07,F_08,-ABS(F_09),F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'JSZXYE' F_20 
177 from #T_01 where F_01 <>'jszx' and F_06='08'  and F_05='03'  and F_20 in ('YE00')
178 
179     /*---上周账户余额-----*/
180 INSERT INTO #T_01
181 select F_01,'','','','','','',0,0,0, F_0101,sum(F_09) F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'JSZX01' F_20
182 from #T_01 where F_02=dateadd(d,-1,'20150810') and F_20='JSZXYE' group by F_01,F_0101
183 
184 
185     /*---内部户-----*/
186 INSERT INTO #T_01
187 select F_01,'','','','','','',0,0,0,  F_0101,0 F_10,sum(F_09) F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'JSZX02' F_20
188 from #T_01 where F_02='20150816' AND F_04='0' and F_20='JSZXYE' group by F_01,F_0101
189 
190     /*---归集行-----没数据*/
191 INSERT INTO #T_01
192 select F_01,'','','','','','',0,0,0, F_0101,0 F_10,0 F_11,sum(F_09) F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'JSZX03' F_20
193 from #T_01 where F_02='20150816' and F_05 in ('01','02','06','07') and F_20='JSZXYE' group by F_01,F_0101
194 
195     /*---其他户-----*/
196 insert into #T_01
197 select F_01,'','','','','','',0,0,0, F_0101,0 F_10,0 F_11,0 F_12,sum(F_09)  F_13,0 F_14,'' F_15,'' F_16,0 F_17,'JSZX04' F_20
198 from #T_01 where F_02='20150816' and F_05='04' and F_20='JSZXYE' group by F_01,F_0101
199 
200 insert into #T_01
201 SELECT  '','','','','','','',0,0,0,'' F_0101,sum(F_10),sum(F_11),sum(F_12),sum(F_13),0 F_14,'' F_15,'' F_16,0 F_17,'JSZX05' F_20
202 FROM #T_01 WHERE F_20 IN ('JSZX01','JSZX02','jszx03','jszx04') group by F_01,F_0101
203 
204     /*---1.本周增减额 -----*/
205 insert into #T_01
206 select F_01,F_02,F_03,F_04,F_05,F_06,F_0601,F_07,F_08,F_09,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'6' F_20 
207 from #T_01 where F_01 ='jszx' and F_04='03'  and F_20 in ('0')
208 union all
209 select F_01,F_02,F_03,F_04,F_05,F_06,F_0601,-ABS(F_07),-ABS(F_08),F_09,F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'6' F_20 
210 from #T_01 where F_01<>'jszx' and F_04='08'  and F_05='03' and F_20 in ('0')
211 
212     /*---2.汇总账户金额--------------------*/
213 insert into #T_01
214 select '','',F_03,'','','','',sum(F_07),sum(F_08),0,'' F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'7' F_20  
215 from #T_01 where F_20='6' GROUP BY F_03
216 
217     /*---3.本企业内部银行账户转账-------------*/
218 INSERT INTO #T_01
219 select '','','','','','','',sum(F_07),0,0,'' F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'30' F_20   
220 from #T_01 where F_02 in ('01','11','15') and F_0601='JSZX' and F_20='6'
221 union all
222 select '','','','','','','',0,sum(F_08),0,'' F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'30' F_20   
223 from #T_01 where F_02 in ('02','12','15') and F_0601='JSZX' and F_20='6'
224 INSERT INTO #T_01
225 select F_01,'','','','','','',-abs(sum(F_07)),-abs(sum(F_08)),0,'' F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'8' F_20   
226 from #T_01 where F_20='30' group by F_01
227 delete #T_01 where F_20='30'
228 
229     /*---4.JSZX 9 -----------------------------*/
230 insert into #T_01
231 select '','','','','','','',sum(F_07),sum(F_08),0,'' F_0101,0 F_10,0 F_11,0 F_12,0 F_13,0 F_14,'' F_15,'' F_16,0 F_17,'9' F_20   
232 from #T_01 where F_20 IN ('7','8')
233 
234     /*---5.JSZX 9 -----------------------------*/
235 insert into #T_01
236 select 'JSZX','','','','','','',sum(F_07),sum(F_08),0, '广东省旅游控股集团有限公司资金结算中心' F_0101,sum(F_10),sum(F_11),SUM(F_12),sum(F_13),Sum(F_14),'' F_15,'' F_16,0 F_17,'jszx00' F_20 
237 from #T_01 where F_20 in ('9','jszx05')
238 
239 
240     /*---  -----------------------------*/
241 update #T_01 set F_02=zjzh_xzBH from #T_01 left join zjzh on F_01=zjzh_dwbh where F_20 in ('5','jszx00') 
242 update #T_01 set F_03=ZJZHXZ_XZmc from #T_01 left join zjzhxz ON F_02=ZJZHXZ_XZBH  where F_20 in ('5','jszx00') 
243 
244 
245 insert into #T_01
246 select '▉小计' F_01,F_02+'01' F_02,'' F_03,'' F_04,'' F_05,'' F_06,'' F_0601,sum(F_07),sum(F_08),sum(F_09),F_03,sum(F_10),sum(F_11),sum(F_12),sum(F_13),sum            (F_14), '' F_15,'' F_16,0 F_17,'jszxxj' F_20 
247 from #T_01 where F_20 in ('5','jszx00') group by F_02,F_03
248 
249 insert into #T_01
250 select '' F_01,'9000' F_02,'' F_03,'' F_04,'' F_05,'' F_06,'' F_0601,sum(F_07),sum(F_08),sum(F_09),'▉合计',sum(F_10),sum(F_11),sum(F_12),sum(F_13),sum            (F_14), '' F_15,'' F_16,0 F_17,'jszxhj' F_20 
251 from #T_01 where F_20 in ('5','jszxxj')
252 
253 insert into #T_01
254 SELECT '' F_01,'9010' F_02,'' F_03,'' F_04,'' F_05,'' F_06,'' F_0601,-abs(sum(zjjsdj_je)) F_07,0 F_08,0 F_09,'▉减:内部单位往来' F_0101,0 F_10,0 F_11,
255 0 F_12,0 F_13,0 F_14, '' F_15,'' F_16,0 F_17,'nbwl' F_20 
256 FROM ZJZH zh
257 LEFT JOIN ZJJSDJ ON ZJZH_ZHNM=ZJJSDJ_YHZH  OR ZJZH_ZHNM=ZJJSDJ_NBZH
258 WHERE 1=1
259 and ZJJSDJ_DJZT='11'    
260 AND zjjsdj_ywrq>=@ksrq   
261 and zjjsdj_ywrq<=@jsrq
262 and zh.ZJZH_DWBH in (select hsdw from #hsdw )
263 and zjjsdj_wldwid in (select hsdw from #hsdw )
264 
265 insert into #T_01
266 SELECT 
267 '' F_01,'9020' F_02,'' F_03,'' F_04,'' F_05,'' F_06,'' F_0601,sum(F_07) F_07,0 F_08,0 F_09,'▉合计' F_0101,0 F_10,0 F_11,
268 0 F_12,0 F_13,0 F_14, '' F_15,'' F_16,0 F_17,'nbwlhj' F_20 
269 from #T_01 where F_20 in ('jszxhj','nbwl')
270 
271 update #T_01 set F_14=F_10+F_07-F_08  where F_20 in ('jszx00','5','jszxxj','jszxhj','nbwl','nbwlhj')
272 
273 select F_01,F_0101,F_10,F_07,F_08,F_11,F_12,F_13,F_14 from #T_01 where F_20 in ('jszx00','5','jszxxj','jszxhj','nbwl','nbwlhj') order by F_02
274 
275 
276 
277 end
278 
279 
280 go
281 [pro_zlzjzxzb] '406fa89b-e1d2-4869-9380-2793b581aa0a','20150810','20150816'
原文地址:https://www.cnblogs.com/crsn/p/4751017.html