这个统计视图应该怎么建啊? 高手请进
有下面2表
病人资料表 dbo.H_INPATIENT
字段:住院号 病人姓名 科室 病床号 主治医师 剩余治疗费 是否出院
病人缴费表 dbo.H_ACCOUNT
字段:缴费号 住院号 缴费金额
------------------------------------------------------------------
我想建立一个视图H_LIST_VIEW 字段如下:
住院号 病床号 病人姓名 预缴金 剩余治疗费 主治医师 科室
说明:
1、得到的H_LIST_VIEW中的病人应该是没有出院的,即 dbo.H_INPATIENT.是否出院='否'
2、预缴金 就是此病人历次缴费的总和,即 SUM(缴费金额) GROUP BY 住院号
3、如果某病人没有缴费记录(既没有缴过费),他的信息一样要出现在H_LIST_VIEW中,只是预缴金=0
求 建立这个 View 的Select语句
问题点数:50、回复次数:4Top
1 楼friendliu(无为)回复于 2004-09-04 09:42:04 得分 0
create view H_LIST_VIEW
as
select a.住院号,a.病床号,a.0病人姓名 SUM(a.缴费金额) as 预缴金 a.剩余治疗费 a0主治医师 a.科室
from dbo.H_INPATIENT a left join dbo.H_ACCOUNT b
on a.住院号=b.住院号 and dbo.H_INPATIENT.是否出院='否'
GROUP BY a.住院号
goTop
2 楼txlicenhe(马可)回复于 2004-09-04 10:00:16 得分 50
create view v_test
As
select a.住院号,a.病床号,a.病人姓名,isNull(b.预缴金,0) as 预缴金,a.剩余治疗费,a.主治医师,a.科室
from dbo.H_INPATIENT a
left join
(select 住院号,sum(缴费金额) as 预缴金 from dbo.H_ACCOUNT group by 住院号) b
on a.住院号 = b.住院号
Top
3 楼wangjiatom(SB)回复于 2004-09-04 10:00:40 得分 0
运行出错啊
SUM(a.缴费金额) <---- 缴费金额 是 dbo.H_ACCOUNT 中的列啊
我按你的做:
--------------------------------------------------------
SELECT a.住院号, a.病床号, a.病人姓名, SUM(a.缴费金额) AS 预缴金, a.剩余治疗费,
a.主治医师, a.科室
FROM dbo.H_INPATIENT a LEFT OUTER JOIN
dbo.H_ACCOUNT b ON a.住院号 = b.住院号 AND a.是否出院 = '否'
GROUP BY a.住院号
------------------------------------------------------------
提示列“ 缴费金额”无效
后来按你的自己改了一下:
---------------------------------------------------
SELECT dbo.H_INPATIENT.住院号, dbo.H_INPATIENT.病床号, dbo.H_INPATIENT.病人姓名,
SUM(dbo.H_ACCOUNT.交费金额) AS 预缴金, dbo.H_INPATIENT.剩余治疗费,
dbo.H_INPATIENT.主治医师, dbo.H_INPATIENT.科室
FROM dbo.H_INPATIENT LEFT OUTER JOIN
dbo.H_ACCOUNT ON dbo.H_INPATIENT.住院号 = dbo.H_ACCOUNT.住院号 AND
dbo.H_INPATIENT.是否出院 = '否'
GROUP BY dbo.H_INPATIENT.住院号
--------------------------------------------------------
还是出错,
提示:dbo.H_INPATIENT.病床号在选择列表中无效,因为该列即不包含在聚合函数中,
也不包含在Group By 子句中。
到底应该怎么搞啊?Top
4 楼wangjiatom(SB)回复于 2004-09-04 10:02:53 得分 0
txlicenhe(马可)
谢谢
你的可以
给分Top




