拼组PROC

CREATE PROC proc_zjgl_sbtj
    (
      @nf VARCHAR(4) ,
      @xmid VARCHAR(4) ,
      @sbxmid VARCHAR(4) ,
      @tableName VARCHAR(20) ,
      @tableBHColumn VARCHAR(20)
    )
AS 
    BEGIN
        DECLARE @sql VARCHAR(8000);
        SET @sql = '
SELECT f.YLJGBH,f.YLJGMC,f.SL ,f.SHTGS,TGL,e.BHFCL FROM 
(SELECT f.SL,f.YLJGBH,f.YLJGMC,e.SHTGS, CASE WHEN f.SL = 0 then 0 else CONVERT(DECIMAL(5,4),CONVERT(DECIMAL,e.SHTGS)/CONVERT(DECIMAL,f.SL)) end AS TGL FROM (
--dt1 资金申报量
--市级
SELECT SUM(ISNULL(sl,0)) AS SL,''0'' as yljgbh , ''市级'' as yljgmc FROM(
SELECT SL,Y.YLJGBH,YLJGMC FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT COUNT(1) AS SL,syljgbh FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g ) AS a 
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh ) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)<5 AND y.YLJGBH > ''0107'''
            + ')AS D 
UNION
--区旗县
SELECT ISNULL(SL,0) SL,YLJGBH,YLJGMC FROM (
SELECT SL,Y.YLJGBH,YLJGMC FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT COUNT(1) AS SL,syljgbh FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g ) AS a 
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh ) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)<5 AND y.YLJGBH <= ''0107'''
            + ' AND y.YLJGBH != ''01''' + ')AS D 
UNION
--合计
SELECT SUM(ISNULL(sl,0)) SL, ''9999'' as yljgbh , ''合计'' as yljgmc FROM(
SELECT SL,Y.YLJGBH,YLJGMC FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT COUNT(1) AS SL,syljgbh FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g ) AS a 
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID where a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4)) + '''
)
GROUP BY a.syljgbh ) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)<5) AS d
) AS f LEFT JOIN
(
--dt2 审核通过量
--市级
SELECT ''0'' as yljgbh , ''市级'' as yljgmc,SUM(ISNULL(d.shtgs,0))SHTGS FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(SHTGS,0)SHTGS FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS SHTGS FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''7'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH > ''0107'''
            + ' AND y.YLJGBH != ''01''' + ')AS d
UNION
--区旗县
SELECT Y.YLJGBH,YLJGMC,ISNULL(SHTGS,0)SHTGS FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS SHTGS FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''7'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH <= ''0107'''
            + 'AND y.YLJGBH != ''01''' + '
UNION
--合计
SELECT ''9999'' as yljgbh , ''合计'' as yljgmc,SUM(ISNULL(d.shtgs,0))SHTGS FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(SHTGS,0)SHTGS FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS SHTGS FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''7'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5)AS d
) AS e ON f.YLJGBH = e.YLJGBH) AS f LEFT join
(
--dt3 通过率 dt2/dt1
--dt4 驳回封存量
--旗县区
SELECT Y.YLJGBH,YLJGMC,ISNULL(BHFCL,0)BHFCL FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS BHFCL FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''9'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH <= ''0107'''
            + ' AND y.YLJGBH != ''01'''
            + '
UNION
-- 市级
SELECT ''0'' as yljgbh , ''市级'' as yljgmc,SUM(ISNULL(d.BHFCL,0)) AS BHFCL FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(BHFCL,0)BHFCL FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS BHFCL FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''9'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH > ''0107'''
            + ' AND y.YLJGBH != ''01'''
            + ') AS d
UNION
--合计
SELECT ''9999'' as yljgbh , ''合计'' as yljgmc,SUM(ISNULL(d.BHFCL,0)) AS BHFCL FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(BHFCL,0)BHFCL FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS BHFCL FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''9'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5) AS d)AS e
ON f.yljgbh = e.yljgbh'
        PRINT ( @sql )
        EXEC(@sql)

        SET @sql = '
SELECT f.YLJGBH, f.YLJGMC ,F.BHFCBL , f.YBKJE,f.SJBFJE,ISNULL(e.ssje,0) SSJE FROM (
SELECT f.YLJGBH, f.YLJGMC, f.SL, F.BHFCL ,F.BHFCBL , f.YBKJE,ISNULL(e.SJBFJE,0) SJBFJE FROM (
SELECT f.YLJGBH, f.YLJGMC, f.SL, F.BHFCL ,F.BHFCBL , e.YBKJE FROM(
--dt5 驳回封存率 dt4/dt1
SELECT f.YLJGBH, f.YLJGMC, f.SL, e.BHFCL ,CASE WHEN f.SL = 0 then 0 else CONVERT(DECIMAL(5,4),CONVERT(DECIMAL,e.BHFCL)/CONVERT(DECIMAL,f.SL)) end AS BHFCBL FROM (
--dt1
--市级
SELECT SUM(ISNULL(sl,0)) AS SL,''0'' as yljgbh , ''市级'' as yljgmc FROM(
SELECT SL,Y.YLJGBH,YLJGMC FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT COUNT(1) AS SL,syljgbh FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g ) AS a 
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh ) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)<5 AND y.YLJGBH > ''0107'''
            + ')AS D 
UNION
--区旗县
SELECT ISNULL(SL,0) SL,YLJGBH,YLJGMC FROM (
SELECT SL,Y.YLJGBH,YLJGMC FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT COUNT(1) AS SL,syljgbh FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g ) AS a 
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh ) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)<5 AND y.YLJGBH <= ''0107'''
            + ' AND y.YLJGBH != ''01''' + ')AS D 
UNION
--合计
SELECT SUM(ISNULL(sl,0)) SL,''9999'' as yljgbh , ''合计'' as yljgmc FROM(
SELECT SL,Y.YLJGBH,YLJGMC FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT COUNT(1) AS SL,syljgbh FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g ) AS a 
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4)) + '''
)
GROUP BY a.syljgbh ) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)<5) AS d
) AS f LEFT JOIN
(
--区旗县 驳回封存量
SELECT Y.YLJGBH,YLJGMC,ISNULL(BHFCL,0)BHFCL FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS BHFCL FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''9'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH <= ''0107'''
            + ' AND y.YLJGBH != ''01'''
            + '
UNION
-- 市级 驳回封存量
SELECT ''0'' as yljgbh , ''市级'' as yljgmc,SUM(ISNULL(d.BHFCL,0)) AS BHFCL FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(BHFCL,0)BHFCL FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS BHFCL FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''9'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH > ''0107'''
            + ' AND y.YLJGBH != ''01'''
            + ') AS d
UNION
--合计 驳回封存量
SELECT ''9999'' as yljgbh , ''合计'' as yljgmc,SUM(ISNULL(d.BHFCL,0)) AS BHFCL FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(BHFCL,0)BHFCL FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS BHFCL FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''9'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5) AS d)AS e
ON f.YLJGBH = e.YLJGBH) AS f
LEFT JOIN (
--dt6 应拨款金额
--应拨款金额 审核通过量*拨付标准 旗县区
SELECT DISTINCT f.YLJGBH ,f.YLJGMC,ISNULL(e.XMQXBFBZ*f.SHTGS,0) YBKJE FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(SHTGS,0)SHTGS FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS SHTGS FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''7'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH <= ''0107'''
            + ' AND y.YLJGBH != ''01''' + '
) AS f
LEFT JOIN 
(SELECT YLJGBH , XMQXBFBZ FROM  ZJGL_SBXMSZ_MX WHERE xmid='''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND BH = '''
            + CAST(@sbxmid AS VARCHAR(4))
            + ''' AND LEN(YLJGBH) = 4 AND YLJGBH <= ''0107'''
            + ') AS e
ON f.YLJGBH = e.YLJGBH
UNION
--市级
SELECT ''0'' as yljgbh , ''市级'' as yljgmc,ISNULL(SUM(ISNULL(YBKJE,0)),0) YBKJE FROM
(SELECT DISTINCT e.YLJGBH ,f.YLJGMC,e.XMQXBFBZ*SHTGS YBKJE FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(SHTGS,0)SHTGS FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS SHTGS FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''7'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH > ''0107'''
            + ' AND y.YLJGBH != ''01''' + '
) AS f
LEFT JOIN 
(SELECT YLJGBH , XMQXBFBZ FROM  ZJGL_SBXMSZ_MX WHERE xmid='''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND BH = '''
            + CAST(@sbxmid AS VARCHAR(4))
            + ''' AND LEN(YLJGBH) = 4 AND YLJGBH > ''0107'''
            + ') AS e
ON f.YLJGBH = e.YLJGBH)AS d
UNION
--合计
SELECT ''9999'' as yljgbh , ''合计'' as yljgmc,ISNULL(SUM(ISNULL(YBKJE,0)),0) YBKJE FROM
(SELECT DISTINCT e.YLJGBH ,f.YLJGMC,e.XMQXBFBZ*SHTGS YBKJE FROM(
SELECT Y.YLJGBH,YLJGMC,ISNULL(SHTGS,0)SHTGS FROM SKJBXX_YLJG AS Y LEFT JOIN (
SELECT syljgbh ,COUNT(1) AS SHTGS FROM (
SELECT *,SUBSTRING(' + @tableBHColumn
            + ',1,4)  AS syljgbh FROM ( select * from ' + @tableName
            + ') as g WHERE ZT = ''7'''
            + ') AS a
WHERE A.SBSJID IN (SELECT DISTINCT BH FROM ZJGL_SBXMSZ a LEFT JOIN ( select * from '
            + @tableName + ') as b ON a.BH = b.SBSJID WHERE a.xmid= '''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND nf ='''
            + CAST(@nf AS VARCHAR(4)) + ''' AND bh ='''
            + CAST(@sbxmid AS VARCHAR(4))
            + '''
)
GROUP BY a.syljgbh,a.ZT) AS B ON Y.YLJGBH=B.syljgbh WHERE LEN(Y.YLJGBH)< 5 AND y.YLJGBH != ''01'''
            + '
) AS f
LEFT JOIN 
(SELECT YLJGBH , XMQXBFBZ FROM  ZJGL_SBXMSZ_MX WHERE xmid='''
            + CAST(@xmid AS VARCHAR(4)) + ''' AND BH = '''
            + CAST(@sbxmid AS VARCHAR(4)) + ''' AND LEN(YLJGBH) = 4) AS e
ON f.YLJGBH = e.YLJGBH)AS d)AS e ON f.yljgbh = e.yljgbh
) AS f LEFT JOIN (
---实拨金额 dt7 旗县区
SELECT a.YLJGBH , a.YLJGMC, SJBFJE FROM dbo.SKJBXX_YLJG a left JOIN 
zjgl_sb b ON a.YLJGBH = b.SBJGBH WHERE len(sbjgbh) = 4 AND SBJGBH <= ''0107'''
            + ' AND SBJGBH != ''01''' + ' AND sbxmid = '''
            + CAST(@sbxmid AS VARCHAR(4)) + '''
UNION
---市级
SELECT ''0'' as yljgbh , ''市级'' as yljgmc,ISNULL(SUM(SJBFJE),0) SJBFJE FROM (
SELECT a.YLJGBH , a.YLJGMC, SJBFJE FROM dbo.SKJBXX_YLJG a left JOIN 
zjgl_sb b ON a.YLJGBH = b.SBJGBH WHERE len(sbjgbh) = 4 AND SBJGBH > ''0107'''
            + ' AND sbxmid = ''' + CAST(@sbxmid AS VARCHAR(4))
            + ''') AS d
UNION
---合计
SELECT ''9999'' as yljgbh , ''合计'' as yljgmc,ISNULL(SUM(SJBFJE),0) SJBFJE FROM (
SELECT a.YLJGBH , a.YLJGMC, SJBFJE FROM dbo.SKJBXX_YLJG a left JOIN 
zjgl_sb b ON a.YLJGBH = b.SBJGBH WHERE len(sbjgbh) = 4 AND sbxmid = '''
            + CAST(@sbxmid AS VARCHAR(4)) + ''') AS d
) AS e ON f.yljgbh = e.yljgbh )AS f
LEFT JOIN (
---实收金额 dt8 旗县区
SELECT a.YLJGBH , a.YLJGMC, SJBFJE SSJE FROM dbo.SKJBXX_YLJG a left JOIN 
zjgl_hz b ON a.YLJGBH = b.HZJGID WHERE len(HZJGID) = 4 AND HZJGID <= ''0107'''
            + ' AND HZJGID != ''01''' + ' AND sbid = '''
            + CAST(@sbxmid AS VARCHAR(4)) + '''
UNION
---市级
SELECT ''0'' as yljgbh , ''市级'' as yljgmc,ISNULL(SUM(SJBFJE),0) SSJE FROM (
SELECT a.YLJGBH , a.YLJGMC, SJBFJE FROM dbo.SKJBXX_YLJG a left JOIN 
zjgl_hz b ON a.YLJGBH = b.HZJGID WHERE len(HZJGID) = 4 AND HZJGID > ''0107'''
            + ' AND sbid = ''' + CAST(@sbxmid AS VARCHAR(4)) + ''') AS d
UNION
---合计
SELECT ''9999'' as yljgbh , ''合计'' as yljgmc,ISNULL(SUM(SJBFJE),0) SSJE FROM (
SELECT a.YLJGBH , a.YLJGMC, SJBFJE FROM dbo.SKJBXX_YLJG a left JOIN 
zjgl_hz b ON a.YLJGBH = b.HZJGID WHERE len(HZJGID) = 4 AND sbid = '''
            + CAST(@sbxmid AS VARCHAR(4)) + ''') AS d)
AS e ON f.yljgbh = e.yljgbh
'
        PRINT ( @sql );
        EXEC(@sql);
    END


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值