需要查询一出货表store中,每个色号color对应订单的总出货量,但不同订单所用的单位unit不一定同,1米等于1.1码,求教该SQL查询该如何写,希望大家能提供个思路或办法,万分感激!

解决方案 »

  1.   

    大概,有其他单位自己加casewhen段,出货量字段自己替换select color,
        sum(case when unit= '米' then 1.1 else 1 end*出货量) as 总出货量
    from store
    group by color
      

  2.   

    就是用单位转换表,假定命名为unit_converter
    unit,standard_unit,rate
    '码','米',1.10
        SELECT s.color,
               SUM(s.quantity * uc.rate) quantity
          FROM store s
          JOIN unit_converter uc
            ON s.unit = uc.unit
      GROUP BY s.color
      

  3.   

    SELECT  color ,
            SUM(CASE WHEN unit = '米' THEN 1.1 * 出货量
                     ELSE 出货量
                END) AS 总出货量
    FROM    store
    GROUP BY color
      

  4.   

    补充#3,1米=1米不能漏
    unit,standard_unit,rate
    '码','米',1.10
    '米','米',1.00
      

  5.   

    再更正,我写反换算比率了
    unit,standard_unit,rate
    '码','米',0.909091
    '米','米',1.000000