• myql分地区印章各状态数据量统计sql


     

    version:5.7.27 

    -- SQL脚本

    SELECT

    te.total,
    c.`name` AS districtName,
    ifnull( ver_t.total, '0' ) AS verTotal,
    c.CODE,
    '' AS NAME,
    '' AS address,
    ifnull( ms_t.total, 0 ) AS msTotal,
    ifnull( ms_tt.total, 0 ) AS hsTotal,
    ifnull( wjf_t.total, 0 ) AS wjfTotal,
    ifnull( tui_t.total, 0 ) AS tuiTotal,
    (
    CASE

    WHEN jft_t.total = 0 THEN
    '0.00%'
    WHEN ( ver_t.total = 0 OR ver_t.total IS NULL ) THEN
    '0.00%'
    WHEN ROUND(( ver_t.total / jft_t.total )* 100, 2 )> 100 THEN
    '100.00%' ELSE CONCAT( ROUND(( ver_t.total / jft_t.total )* 100, 2 ), '%' )
    END
    ) AS bili,
    (
    CASE

    WHEN ms_t.total = 0 THEN
    '0.00%'
    WHEN ( ms_tt.total = 0 OR ms_tt.total IS NULL ) THEN
    '0.00%'
    WHEN ROUND(( ms_tt.total / ms_t.total )* 100, 2 )> 100 THEN
    '100.00%' ELSE CONCAT( ROUND(( ms_tt.total / ms_t.total )* 100, 2 ), '%' )
    END
    ) AS msbili,
    (
    CASE

    WHEN te.total = 0 THEN
    '0.00%'
    WHEN ( tui_t.total = 0 OR tui_t.total IS NULL ) THEN
    '0.00%'
    WHEN ROUND(( tui_t.total / te.total )* 100, 2 )> 100 THEN
    '100.00%' ELSE CONCAT( ROUND(( tui_t.total / te.total )* 100, 2 ), '%' )
    END
    ) AS zgbili
    FROM
    (
    SELECT
    s.district_no,
    COUNT( s.id ) AS total
    FROM
    lv_seal s
    WHERE
    s.is_deleted = 'N'
    AND s.city_no = '430700'
    AND s.approval_date >= '20201001'
    AND s.approval_date <= '20210930'
    GROUP BY
    s.district_no
    ORDER BY
    s.district_no DESC
    ) AS te
    LEFT JOIN (
    SELECT
    s.district_no,
    COUNT( s.id ) AS total
    FROM
    lv_seal s
    WHERE
    s.is_deleted = 'N'
    AND STATUS = '4'
    AND s.city_no = '430700'
    AND s.fetch_date >= '20201001'
    AND s.fetch_date <= '20210930'
    GROUP BY
    s.district_no
    ORDER BY
    s.district_no DESC
    ) AS jft_t ON te.district_no = jft_t.district_no
    LEFT JOIN (
    SELECT
    s.district_no,
    COUNT( s.id ) AS total
    FROM
    lv_seal s
    WHERE
    s.is_deleted = 'N'
    AND vertify_type IN ( '1', '2' )
    AND STATUS = '4'
    AND s.city_no = '430700'
    AND s.fetch_date >= '20201001'
    AND s.fetch_date <= '20210930'
    GROUP BY
    s.district_no
    ORDER BY
    s.district_no DESC
    ) AS ver_t ON te.district_no = ver_t.district_no
    LEFT JOIN lv_district c ON te.district_no = c.`code`
    LEFT JOIN ( SELECT COUNT(*) AS total, district_no FROM lv_marker_site GROUP BY district_no ORDER BY district_no DESC ) AS ms_t ON c.CODE = ms_t.district_no
    LEFT JOIN (
    SELECT
    COUNT(*) AS total,
    district_no
    FROM
    (
    SELECT
    ms.`name`,
    ms.marker_site_no,
    s_t.total,
    ms.city_no,
    ms.district_no
    FROM
    lv_marker_site ms
    LEFT JOIN (
    SELECT
    marker_site_no,
    COUNT( id ) AS total
    FROM
    lv_seal
    WHERE
    marker_site_no IS NOT NULL
    AND approval_date >= '20201001'
    AND approval_date <= '20210930' GROUP BY marker_site_no ) AS s_t ON ms.marker_site_no = s_t.marker_site_no WHERE s_t.total IS NOT NULL AND s_t.total > 0
    ) AS h_ms_t
    GROUP BY
    h_ms_t.district_no
    ORDER BY
    h_ms_t.district_no DESC
    ) AS ms_tt ON ms_tt.district_no = ms_t.district_no
    LEFT JOIN (
    SELECT
    s.district_no,
    COUNT( s.id ) AS total
    FROM
    lv_seal s
    WHERE
    s.is_deleted = 'N'
    AND vertify_type = '2'
    AND s.city_no = '430700'
    AND s.approval_date >= '20201001'
    AND s.approval_date <= '20210930'
    GROUP BY
    s.district_no
    ORDER BY
    s.district_no DESC
    ) AS tui_t ON c.CODE = tui_t.district_no
    LEFT JOIN (
    SELECT
    s.district_no,
    COUNT( s.id ) AS total
    FROM
    lv_seal s
    WHERE
    s.is_deleted = 'N'
    AND STATUS != '4'
    AND s.city_no = '430700'
    AND s.approval_date >= '20201001'
    AND s.approval_date <= '20210930'
    GROUP BY
    s.district_no
    ORDER BY
    s.district_no DESC
    ) AS wjf_t ON c.CODE = wjf_t.district_no
    WHERE
    c.CODE IS NOT NULL
    ORDER BY
    c.CODE;
    ------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    飞跃平野(sdut1124)
    背包
    sdut2193救基友记3(三维)
    hdu1542 Atlantis(矩阵面积的并)
    hdu1505City Game(扫描线)
    poj3468A Simple Problem with Integers(线段树的区域更新)
    hdu1166敌兵布阵&&hdu1754I Hate It(线段树入门)
    Biorhythms(中国剩余定理)
    Sequence(priority_queue)
    Message Flood(map)
  • 原文地址:https://www.cnblogs.com/sung1024/p/15593936.html
Copyright © 2020-2023  润新知