记录一次关键sql思路

46 阅读1分钟

image.png

SELECT
    t1.merchant_id,t1.bill_name,
    sum( CASE t1.temt_type WHEN 'LK' THEN 1 ELSE 0 END ) AS lkCount,
    sum( CASE t1.temt_type WHEN 'SP' THEN 1 ELSE 0 END ) AS spCount,
    sum( CASE t1.temt_type WHEN 'GC' THEN 1 ELSE 0 END ) AS gcCount,
    sum( CASE t1.temt_type WHEN 'GG' THEN 1 ELSE 0 END ) AS ggCount,
    sum( CASE t1.temt_type WHEN 'BG' THEN 1 ELSE 0 END ) AS bgCount,
    sum( CASE t1.temt_type WHEN 'GY' THEN 1 ELSE 0 END ) AS gyCount,
    sum( CASE t1.temt_type WHEN 'CY' THEN 1 ELSE 0 END ) AS cyCount,
    sum( CASE t1.temt_type WHEN 'QT' THEN 1 ELSE 0 END ) AS qtCount,
    count(1) count
FROM
    	w_lease_contract t1 
WHERE 
	CURDATE() BETWEEN t1.contract_start_date AND t1.contract_end_date
	AND t1.state not in ('0','1','20')
   GROUP BY
		t1.merchant_id,
		t1.bill_name