select c.COM_ID,c.COM_CODE,c.COM_NAME,c.ORIGIN,c.SPECIFICATION,c.UNIT,ci.PRICE4,ci.NO_IN_PACKAGE,cc.QUANTITY from COMMODITY_INFO ci,COMMODITY c,INVENTORY cc where c.COM_ID=ci.COM_ID and ci.COM_ID=cc.COM_ID order by c.com_id
从三个表里查询同一个产品的不同属性字段,这样写的sql查询出来的结果重复,只需要一条记录,但出来多条。我应该怎么写?
从三个表里查询同一个产品的不同属性字段,这样写的sql查询出来的结果重复,只需要一条记录,但出来多条。我应该怎么写?
c.UNIT,ci.PRICE4,ci.NO_IN_PACKAGE,cc.QUANTITY
from COMMODITY_INFO ci,COMMODITY c,INVENTORY cc
where c.COM_ID=ci.COM_ID and ci.COM_ID=cc.COM_ID
order by c.com_id
看看是那一个字段不重复,用min/max(字段)
(select c.COM_ID,c.COM_CODE,c.COM_NAME,c.ORIGIN,c.SPECIFICATION,c.UNIT,ci.PRICE4,ci.NO_IN_PACKAGE,cc.QUANTITY from COMMODITY_INFO ci,COMMODITY c,INVENTORY cc where c.COM_ID=ci.COM_ID and ci.COM_ID=cc.COM_ID
)select * from f t where SPECIFICATION=(select max(SPECIFICATION) from f where COM_ID=t.COM_ID and COM_ID=t.COM_ID)
这个位置加上报错:在关键字 'distinct' 附近有语法错误。
select name,MAX(ID) as ID
from syscolumns
group by Name--如果 1个 Name--> 多个 ID首先你要确定是那个表的字段重复,用条件取第一条或最后一条或min/max
不能只对一个列去重,比如:
1,'aaa',15,'qac',5
2,'bbb',22,'qtd',5
3,'ccc',34,'r5s',5
如果你要对最后一列去重,那其他列的值取什么呢?