Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

合计查询

sha  发表于:2018-02-06 19:25:58  
复制

类别 项目 备注
a
1
0.5
a1
a
2
0.2
a2
a
3
0.3
a3
a
4
0.6
a4
b
1
0.3
b1
b
2
0.5
b2
b
3
0.6
b3
b
4
0.7
b4
合并计算各项目的最小值,并且显示对应的类别和备注。结果:
类别 项目 备注
b
1
0.3
b1
a
2
0.2
a2
a
3
0.3
a3
b
4
0.1
b4

 

Top
张志 发表于:2018-02-07 00:32:56

第一个查询:分组,选最小值。可以得到 类别、项目、值

第二个查询:通过第一个查询,与原来的表 关联类别 和 项目,可以得到对应的备注



sha 发表于:2018-02-07 11:17:38
第一个查询怎么实现,可以写SQL语句吗?

cspa 发表于:2018-02-07 14:26:12

假设你的上表表名是“表1”,下面的一个查询即可得出结果:


SELECT 表1.类别, 查询1.项目, 查询1.项目最小值, 表1.备注
FROM 表1, (SELECT 表1.项目, Min(表1.值) AS 项目最小值
FROM 表1
GROUP BY 表1.项目
)  AS 查询1
WHERE 表1.项目=[查询1].[项目] AND 表1.值=[查询1].[项目最小值]
ORDER BY 表1.项目;


顺便说一句,你的结果好像有错误,正确的应是:



sha 发表于:2018-02-25 17:11:53

cspa:谢谢!

结果是写错了。

如果不同类别相同项目中有相同的最小值时,如何让最小值只显示类别大的呢?

例如:C类别的项目4的值也是0.6,最后行变成:C 4 0.6 c4



cspa 发表于:2018-02-27 08:26:23

那就这样:

SELECT 查询4.类别 AS 类别最大值, 查询4.项目, 查询4.项目最小值, 查询4.备注
FROM (SELECT 表1.类别, 查询4.项目, 查询4.项目最小值, 表1.备注 FROM 表1, (SELECT 表1.项目, Min(表1.值) AS 项目最小值 FROM 表1 GROUP BY 表1.项目)  AS 查询4 
WHERE 表1.项目=查询4.项目 And 表1.值=查询4.项目最小值 ORDER BY 表1.项目)  AS 查询4 INNER JOIN (SELECT Max(查询2.类别) AS 类别最大值, 查询2.项目 FROM (SELECT 表1.类别, 查询1.项目, 查询1.项目最小值, 表1.备注 FROM 表1, (SELECT 表1.项目, Min(表1.值) AS 项目最小值 FROM 表1 GROUP BY 表1.项目)  AS 查询1 WHERE 表1.项目=查询1.项目 And 表1.值=查询1.项目最小值 ORDER BY 表1.项目)  AS 查询2 
GROUP BY 查询2.项目 
ORDER BY Max(查询2.类别))  AS 查询3 ON (查询4.类别=[查询3].类别最大值) AND (查询4.项目=[查询3].项目);




总记录:5篇  页次:1/1 9 1 :