mysql,
有1个物料号对应了2个供应商,在做sum()的时候要对应物料的总金额,还要分别显示2个供应商对应的价格。
第二个供应商因为价格较小就派到很后面了。现在我只能做到根据对应供应商的该物料价格sum(),
select 物料号,sum(采购价),供应商 as ord from table order by ord ;我的问题是:
如何做到根据物料号如果对应2家供应商则先显示总价 再分2行显示2家供应商明显。
请大家帮忙看看,是不是要写存储过程什么的。 谢谢!
有1个物料号对应了2个供应商,在做sum()的时候要对应物料的总金额,还要分别显示2个供应商对应的价格。
第二个供应商因为价格较小就派到很后面了。现在我只能做到根据对应供应商的该物料价格sum(),
select 物料号,sum(采购价),供应商 as ord from table order by ord ;我的问题是:
如何做到根据物料号如果对应2家供应商则先显示总价 再分2行显示2家供应商明显。
请大家帮忙看看,是不是要写存储过程什么的。 谢谢!
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
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家。碰到这种情况怎么解决?
group by prdnum order by tty1 desc;