当前位置:主页>仓库管理软件> 列表

这样的SQL语句该怎么写? 找采购管理软件

记账软件版1楼: 我有一个表数据如下:

名称 价格1 价格2 总价格 供应商 产地
A 3 5 8 。。 上海
A 4 6 10 。。 广州
B 6 6 12 。。 广州
A 3 5 8 。。 北京
B 6 8 14 。。 北京

我该怎么写语句才能取出如下内容?

名称 价格1 价格2 总价格 供应商 产地
A 3 5 8 。。 上海
A 4 6 10 。。 广州
B 6 6 12 。。 广州
B 6 8 14 。。 北京

也即是将名称相同且价格1、价格2也相同的信息,只显示一条。上述的内容第四条内容不被显示!这样的语句该怎么写啊?-------应该不太难吧,求兄弟们帮忙了!

2楼: select distinct 名称, 价格1, 价格2, 总价格, 供应商, 产地 from Tablename 如速达3000软件

3楼: to royal1442兄:

这样写估计不行,因为商品相同且价格相同的记录其产地和供应商有可能不一样!

4楼: 如果不同,不会被过滤掉的!你可以试试看嘛

5楼: 好的兄弟,我试试!

不过,兄弟我希望的是即使供应商、产地不一样,也要过滤掉的啊!

6楼: 如果有多个供应商,你查询结果到底要显示哪个供应商呢?

记账软件版7楼: SELECT DISTINCT 名称,价格1,价格2,总价格,供应商,产地 FROM YouTableName
結果是正確的。
這是在數據庫設計不合理而出現的問題。

8楼: A 3 5 8 。。 上海
A 3 5 8 。。 北京

我不知道我的意思,兄弟们是否明白,请看上面两条记录,如果用你们的语句,肯定都被留下,但是我的目的是只要商品名称、价格1、价格2相等,那么第二条将被筛选掉,不知兄弟们有何高见!

9楼: select distinct A.名称, A.价格1, A.价格2, A.总价格, Max(A.供应商), Max(A.产地) from
(select distinct 名称, 价格1, 价格2, 总价格, 供应商, 产地 from Tablename ) A
group by A.名称, A.价格1, A.价格2

10楼: 没试过上面的行不行,但是如果又ID字段可以这样:
select * from tablename where ID not in (
select b.ID from tablename a,tablename b
where a.名称 = b.名称 and a.价格1 = b.价格1 and a.价格2 = b.价格2 and a.ID <> b.ID )

11楼: SELECT A.名称, A.价格1, A.价格2, A.总价格, A.供应商, B.产地 FROM YouTableName AS A LEFT OUTER JOIN (SELECT 产地,AutoID FROM YouTableName) B ON A.AutoID=B.AutoID GROUP BY A.名称, A.价格1, A.价格2, A.总价格, A.供应商, B.产地

在數據表裡要用到AutoID 自動編號,如果沒有自己建立一個。

12楼: 1.如果你不介意显示结果把供应商和产地放在一起,可以用这条语句
select 名称,价格1,价格2 ,总价格,供应商和产地=max(供应商+产地) from TableName
group by 名称,价格1,价格2,总价格

2.如果你介意,可以用下面的语句,比上面复杂一些
Select t1.名称,t1.价格1,t1.价格2 ,t1.总价格,t1.供应商,t1.产地
from t T1,
(
select 名称,价格1,价格2 ,供应商和产地=max(供应商+产地) from T
group by 名称,价格1,价格2
) t2
where t1.名称=t2.名称
and t1.价格1=t2.价格1
and t1.价格2=t2.价格2
and T1.供应商+T1.产地=T2.供应商和产地 如采购管理软件

13楼: to Cloud0:

这样也不行,一个都没有筛选掉!

记账软件版14楼: to lanruishan:

你把供应商和产地组合到一块,那么如果我有更多的其他信息,如果经手人、日期之类的你就不好解决了吧!

to bbscom:

你把供应商显示A表,产地显示B表的,这样我就有点看不懂了!

15楼: 你的表有没有主键,如果有主键的话,把我的语句换成
Select t1.名称,t1.价格1,t1.价格2 ,t1.总价格,t1.供应商,t1.产地
from tableName T1,
(
select 名称,价格1,价格2 ,PK=max(主键字段名) from TableName
group by 名称,价格1,价格2
) t2
where t1.名称=t2.名称
and t1.价格1=t2.价格1
and t1.价格2=t2.价格2
and T1.主键字段名=T2.PK

16楼: 如果没有主键,还可以把所有不相同的字段都加起来,然后Max,或者自己建一个自动增加的主键

17楼: 按照lanruishan方法,问题已经解决,多谢帮忙的兄弟!