日期:2014-05-17  浏览次数:20405 次

accss中数据查询的问题


A表  有字段 name price  id值为 
'xiaoming'  '100'  1
'xiaoming1'  '100'  2

B表有字段  personName1 price iscal personid 值为

 'xiaohuang' '200' true  1
 'xiaohuang1' '200' false  2


C表有字段  personName2 price iscal personid  值为
 'xiaohuang' '300' false 1
'xiaohuang1' '300' true 2


D表中 也有字段 personName2 price iscal  值可能有可能没有

我想要最后结果体现A表的内容,但是price必须是3个表之和而且iscal必须为true 而且personid  = id 的才要加上去 要如何写呢 ?而且我要判断其他3个表的是否有数据

我想要的结果是 

'xiaoming'  '300'  1
'xiaoming1'  '400'  2
如何写呢

------解决方案--------------------
引用:
Quote: 引用:

select a.name,a.price+SUM(b.price) as price,a.id
from A表 a
left join 
(
select * from B表 
union all
select * from C表
union all
select * from D表
)b
on a.id = b.personid and
   b.iscal='true'
group by a.name,a.price


额 access不支持join表达式 怎么办呢


我刚看了,access支持left join的好像。

具体有报什么错吗