Office中国论坛/Access中国论坛

标题: 做了一个非常简单的联合查询。。但有点问题 [打印本页]

作者: deathhana    时间: 2009-9-1 10:26
标题: 做了一个非常简单的联合查询。。但有点问题
SELECT 已体检客户表.机构名称 AS 表达式1, Count("核保编号") AS 总和
FROM 已体检客户表
WHERE (((已体检客户表.报告完成日期) Is Not Null))
GROUP BY 已体检客户表.机构名称;

如:
机构名称  总合
123        4

这个可以实现以机构为单位,列出在机构进行体检 并 报告完成日期为 NOT NULL的总和但是我想把 报告完成日期IS NULL 的综合也列出来

我这么做
SELECT 已体检客户表.机构名称 AS 表达式1, Count("核保编号") AS 总和
FROM 已体检客户表
WHERE (((已体检客户表.报告完成日期) Is Not Null))
GROUP BY 已体检客户表.机构名称
UNION
SELECT 已体检客户表.机构名称 AS 表达式1, Count("核保编号") AS 总和
FROM 已体检客户表
WHERE (((已体检客户表.报告完成日期) Is Not Null))
GROUP BY 已体检客户表.机构名称;
这样的话会别报告完成日期为NULL的综合列在下方

机构名称  总合
123        4
123        5

我想把它列在NOT NULL值的后面 在同行


机构名称  总合1 总和2
123        4       5

不知道如何操作。。。请大家指点
作者: djt    时间: 2009-9-1 10:43
好多方法
transform sum(总和)
select 表达式1
from (
SELECT 已体检客户表.机构名称 AS 表达式1, '完成‘ as Wancheng,Count("核保编号") AS 总和
FROM 已体检客户表
WHERE (((已体检客户表.报告完成日期) Is Not Null))
GROUP BY 已体检客户表.机构名称
UNION
SELECT 已体检客户表.机构名称 AS 表达式1, '未完',Count("核保编号") AS 总和
FROM 已体检客户表
WHERE (((已体检客户表.报告完成日期) Is Not Null))
GROUP BY 已体检客户表.机构名称
    )
group by 表达式1
pivot wangcheng
作者: deathhana    时间: 2009-9-1 10:53
非常感谢 我来消化下。。。在这个论坛学到了很多 我消化下线
作者: deathhana    时间: 2009-9-1 11:02
transform sum(总和)
select 表达式1
from (
这个开头怎么解释的。、、、?
作者: djt    时间: 2009-9-1 11:03
行列转置
把行放到列显示
作者: lanshai    时间: 2009-9-1 13:32
oooooooooooooo
作者: deathhana    时间: 2009-9-1 16:17
尴尬。。。。出问题了。。。反复试验。。弄出了诸多奇怪的表格。。
有 transform 的例子么。。。?
作者: deathhana    时间: 2009-9-1 16:37
SELECT 已体检客户表.机构名称 AS 表达式1, '完成‘ as Wancheng,Count("核保编号") AS 总和

另外这里完成 我不太理解意思
因为我的表格里完成和未完成取决于一个地方的值是不是=null
如果有值他就是完成 但是不确定他的值是什么。。。
呃。。。
作者: deathhana    时间: 2009-9-1 21:08
额 沉下去了~
作者: aslxt    时间: 2009-9-2 12:56
把示例库传上来吧,啊?




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