我现在有这样一个表,通过下面SQL语句
SELECT distinct kh_mingcheng, yw_type, SUM(CONVERT(float, yw_jin)) AS yw_jin,huilv FROM dbo.liuliang_final WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '发放' OR yw_type = '收回' OR yw_type = '转出') GROUP BY kh_mingcheng, yw_type,huilv 
得到下面的结果kh_mingcheng   yw_type    yw_jin
深圳12           发放       1512.817 
深圳12           收回        756.307 
深圳12           转出        756.307
现在我想将‘收回’和‘转出’合并,应该怎么,求各位高人帮帮忙啦

解决方案 »

  1.   

    SELECT distinct kh_mingcheng, yw_type = '收回+转出', SUM(CONVERT(float, yw_jin)) AS yw_jin,huilv 
    FROM dbo.liuliang_final WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '收回' OR yw_type = '转出') 
    union all
    SELECT distinct kh_mingcheng, yw_type = '发放', SUM(CONVERT(float, yw_jin)) AS yw_jin,huilv 
    FROM dbo.liuliang_final WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '发放') 
      

  2.   

    --上面少了个group by SELECT distinct kh_mingcheng, yw_type = '收回+转出', SUM(CONVERT(float, yw_jin)) AS yw_jin,huilv 
    FROM dbo.liuliang_final WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '收回' OR yw_type = '转出') 
    GROUP BY kh_mingcheng
    union all
    SELECT distinct kh_mingcheng, yw_type = '发放', SUM(CONVERT(float, yw_jin)) AS yw_jin,huilv 
    FROM dbo.liuliang_final WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '发放') 
    GROUP BY kh_mingcheng
      

  3.   

    SELECT distinct kh_mingcheng, yw_type = '收回+转出', SUM(CONVERT(float, yw_jin)) AS yw_jin,huilv 
    FROM dbo.liuliang_final WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '收回' OR yw_type = '转出') 
    GROUP BY kh_mingcheng
    union all
    SELECT distinct kh_mingcheng, yw_type = '发放', SUM(CONVERT(float, yw_jin)) AS yw_jin,huilv 
    FROM dbo.liuliang_final WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '发放') 
    GROUP BY kh_mingcheng
      

  4.   

    SELECT kh_mingcheng, CASE WHEN yw_type = '收回' OR yw_type = '转出' THEN '收回或转出' ELSE yw_type END, SUM(CONVERT(float, yw_jin)) AS yw_jin, huilv
     FROM dbo.liuliang_final 
     WHERE (date BETWEEN '20070901' AND '20070931') AND (yw_type = '发放' OR yw_type = '收回' OR yw_type = '转出') 
     GROUP BY kh_mingcheng, CASE WHEN yw_type = '收回' OR yw_type = '转出' THEN '收回或转出' ELSE yw_type END, huilv