Office中国论坛/Access中国论坛

标题: 如何让一个联合查询显示成这个样子 [打印本页]

作者: lupo    时间: 2007-4-25 22:29
标题: 如何让一个联合查询显示成这个样子
制作了一个联合查询来查询设备数量,虽然结果没错,但显示出来的是这个样子

[attach]24135[/attach]

如何让它显示成这个样子
[attach]24134[/attach]
谢谢指教。

例子在下面:

[attach]24133[/attach]

作者: 一点通    时间: 2007-4-25 22:40
普通查询不行吗?为何要用到联合查询?
[attach]24139[/attach]


[此贴子已经被作者于2007-4-25 15:45:14编辑过]


作者: andymark    时间: 2007-4-25 22:51


[attach]24137[/attach]

作者: eyewitnes    时间: 2007-4-25 22:59
SELECT Mid([设备编号],3,4) AS 名称编号, Sum((IIf(Len([牌照号])=6,1,0))) AS 有牌数量, Sum((IIf(Len([牌照号])<>6,1,0))) AS 无牌数量
FROM tbl_car
WHERE (((Mid([设备编号],3,2))="01" Or (Mid([设备编号],3,2))="02" Or (Mid([设备编号],3,2))="03" Or (Mid([设备编号],3,2))="09") AND ((tbl_car.淘汰日期) Is Null))
GROUP BY Mid([设备编号],3,4);

作者: lupo    时间: 2007-4-26 04:51
首先感谢楼上各位的热情答复。

一点通:

是我标题有误,其实我的要求是只要到达目的,查询的方法倒也无所谓,不是非要联合查询。你的查询似乎理解错我的意思,无牌数量并不是对淘汰日期进行计数,而是对牌照号不满六位的设备进行计数。

Andymark:

你的方法比较容易明白,也是我目前正使用的方法,但我后来希望能在一个查询中就解决问题,所以才来提问,呵呵。

eyewitnes:

我要的就是你这个方法。看来我的思路太窄了。[em04]

我给你的例子有错???

[此贴子已经被一点通于2007-4-25 20:58:48编辑过]


作者: andymark    时间: 2007-4-26 05:26
  可以合并在一个查询的
作者: 一点通    时间: 2007-4-26 05:53
以下是引用lupo在2007-4-25 20:51:00的发言:


首先感谢楼上各位的热情答复。

一点通:

是我标题有误,其实我的要求是只要到达目的,查询的方法倒也无所谓,不是非要联合查询。你的查询似乎理解错我的意思,无牌数量并不是对淘汰日期进行计数,而是对牌照号不满六位的设备进行计数。

Andymark:

你的方法比较容易明白,也是我目前正使用的方法,但我后来希望能在一个查询中就解决问题,所以才来提问,呵呵。

eyewitnes:

我要的就是你这个方法。看来我的思路太窄了。[em04]

我给你的例子有错???

我的例子不符合你的要求???
作者: lupo    时间: 2007-4-27 04:32
一点通,你给我的例子语法如下:

SELECT Mid([设备编号],3,4) AS 名称编号, Count(IIf(Len([牌照号])<>6,Null,1))-[无牌数量] AS 用牌数量, Count(tbl_car.淘汰日期) AS 无牌数量
FROM tbl_car
GROUP BY Mid([设备编号],3,4);

测试后得到的结果是正确的,但我看不明白这段:

Count(tbl_car.淘汰日期) AS 无牌数量

麻烦请解释一下吧,谢谢。
作者: 一点通    时间: 2007-4-27 05:09
Count()当有数据时才会计算,null是不计算的,所以利用了这个特征来处理
作者: lupo    时间: 2007-4-27 05:41
谢谢前辈指教,现在明白了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3