mysql,
有1个物料号对应了2个供应商,在做sum()的时候要对应物料的总金额,还要分别显示2个供应商对应的价格。
第二个供应商因为价格较小就派到很后面了。现在我只能做到根据对应供应商的该物料价格sum(),
select  物料号,sum(采购价),供应商 as ord from table order by ord ;我的问题是:
如何做到根据物料号如果对应2家供应商则先显示总价 再分2行显示2家供应商明显。
请大家帮忙看看,是不是要写存储过程什么的。 谢谢!

解决方案 »

  1.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  2.   

    抱歉昨天很晚了,写的语无伦次的。表结构是这样的:
    CREATE TABLE `new_table` (
      `number` varchar(45) DEFAULT NULL,
      `date` datetime DEFAULT NULL,
      `makernum` varchar(45) DEFAULT NULL,
      `makername` varchar(45) DEFAULT NULL,
      `typeCN` varchar(45) DEFAULT NULL,
      `typeEN` varchar(45) DEFAULT NULL,
      `prdline` varchar(45) DEFAULT NULL,
      `prdnum` varchar(45) DEFAULT NULL,
      `prdname` varchar(45) DEFAULT NULL,
      `quantity` double DEFAULT NULL,
      `orderprice` double DEFAULT NULL,
      `receiptcount` double DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
    我的语句:SELECT makernum,makername,prdnum,prdname,typecn,
    sum(quantity),orderprice,sum(receiptcount) as tty1
    FROM test.new_table  
    where typeEN='SFG'   
    group by prdnumorder by tty1 desc;其实我就是担心有2家供应商都对应这一个prdnumber的情况。
    因为我是group by prdnum,最后求的这个sum(receiptcount)里会不会把2家供应商的金额全部加在一起,但是不显示出来是2家。碰到这种情况怎么解决?
      

  3.   

    查询语句最后行少了个空格
    group by prdnum order by tty1 desc;