select cast(amountsum as varchar(10))+'×'+boxsize+boxtype as BoxInfo,conid
from (SELECT SUM(Amount) AS amountsum, BoxSize, BoxType, ConID
        FROM T_PlanBox
        GROUP BY ConID, BoxSize, BoxType) mm查出:boxinfo            conid
23×20'GP          12312321
12×20'OT          12312321想要看到的信息是:
boxallinfo                  conid
23×20'GP/12×20'OT         12312321该怎么实现亚!

解决方案 »

  1.   

    SELECT cast(amountsum_gp AS varchar(10)) 
          + '×' + boxsize + 'GP/' + cast(amountsum_ot AS varchar(10)) 
          + '×' + boxsize + 'OT' AS BoxInfo, conid
    FROM (SELECT SUM(CASE BoxType WHEN 'GP' THEN Amount ELSE 0 END) 
                  AS amountsum_gp, 
                  SUM(CASE BoxType WHEN 'OT' THEN Amount ELSE 0 END) 
                  AS amountsum_ot, BoxSize, BoxType, ConID
            FROM T_PlanBox
            GROUP BY ConID, BoxSize) mm
      

  2.   

    SELECT cast(amountsum_gp AS varchar(10)) 
          + '×' + boxsize + 'GP/' + cast(amountsum_ot AS varchar(10)) 
          + '×' + boxsize + 'OT' AS BoxInfo, conid
    FROM (SELECT SUM(CASE BoxType WHEN 'GP' THEN Amount ELSE 0 END) 
                  AS amountsum_gp, 
                  SUM(CASE BoxType WHEN 'OT' THEN Amount ELSE 0 END) 
                  AS amountsum_ot, BoxSize, BoxType, ConID
            FROM T_PlanBox
            GROUP BY ConID, BoxSize) mm
    GROUP BY CONID
      

  3.   

    我是想如果在我查出的那些记录的基础上即
    boxinfo            conid
    23×20'GP          12312321
    12×20'OT          12312321
    再转化:而且GP OT 都不是固定的
    boxallinfo                  conid
    23×20'GP/12×20'OT         12312321
    该怎么办,如果用在程序中写,该怎么实现。遍历马?
      

  4.   

    --建立测试环境
    Create Table 表(boxinfo varchar(10),conid varchar(10))
    --插入数据
    insert into 表
    select '23×20''GP','12312321' union
    select '12×20''OT','12312321'
    --测试语句
    go 
     CREATE FUNCTION FunMergeCharField(@vchA varchar(10))
    RETURNS varchar(40)
    AS
    BEGIN
    DECLARE @r varchar(40)
    SET @r=''
    SELECT @r=@r+','+boxinfo FROM 表 WHERE conid=@vchA 
    RETURN(substring(@r,2,8000))
    END
    GOselect dbo.FunMergeCharField(conid) as boxinfo,conid from  表 group by conid
    --删除测试环境
    Drop Table 表
    drop function FunMergeCharField/*
    boxinfo                                  conid      
    ---------------------------------------- ---------- 
    12×20'OT,23×20'GP                        12312321
    */