菜鸟使用ACCESS数据库,碰到一个sql语句不会写,请高手指教一下。(86)

  • 主题发起人 主题发起人 wanglong
  • 开始时间 开始时间
W

wanglong

Unregistered / Unconfirmed
GUEST, unregistred user!
1:客户资料表编号 姓名1 刘德华2 张学友2:欠费表客户编号 金额1 1000我想用sql语句得出的结果是编号 姓名 是否欠费1 刘德华 是2 张学友 否就是说,在欠费表里不存在就说明没欠费,access怎么写这个语句啊??
 
SELECT id, name FROM 客户表 WHERE id IN (SELECT id FROM 欠费表)则此时列出的都是欠费的客户信息。
 
查询不欠费客户时可以在 IN 之前加 NOT 则得到所有不欠费客户信息。我觉得查询时不要将欠费与不欠费客户同时列出这样很容易出现人工错误。如果非要,则可以通过创建一个查询,其中加一个计算字段来实现你给出的表样式。
 
select k.编号,k.姓名,isnull(A.ispay,'是') as 是否欠费from 客户资料表 kleft join 欠费表 qon k.编号=q.编号left join(select 'ispay'=case when q.金额 > 0 then '否' else '是'end,q.idfrom 欠费表 q)Aon q.id=A.id上面代码没有考虑主键及数据完整性,仅就此例子而答。
 
select a.编号 a.姓名, iif(b.欠费 <> 0, '是', '否') 是否欠费 from 客户表 a left join 欠费表 b on a.a.id = b.id其实在access中就是一个iif,在sql server 中就是一个case的使用。大概就是这个样子吧。好久不写sql了。如果不对就查查帮助。
 
刚才在access中调试了一下,以下语句测试通过。kehu表,jje 为欠费表。select kehu.id, name, iif(je <> 0, '是', '否') as fei from kehu left join jje on kehu.id = jje.id
 
select a.编号,a.姓名,是否欠费=(case when isnull(b.金额,0)>0 then '是' else '否' end)from 客户表 a left join(select 客户编号,sum(isnull(金额,0))金额 from 欠费表 group by 客户编号)b on a.编号=b.客户编号
 
楼上的看清,人家是ACCESS数据库
 
商业代码出售1.财务系统(仿金蝶)2.人事考勤薪资系统(通用版)3.进销存+人事考勤薪资+财务需要的联系QQ:270311402
 
后退
顶部