Foxtable(狐表)用户栏目专家坐堂 → [求助]sql语句,太长了,找师傅帮忙检查检查吧!


  共有3420人关注过本帖树形打印复制链接

主题:[求助]sql语句,太长了,找师傅帮忙检查检查吧!

帅哥哟,离线,有人找我吗?
谢天钰
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:3044 威望:0 精华:0 注册:2012/4/13 12:44:00
[求助]sql语句,太长了,找师傅帮忙检查检查吧!  发帖心情 Post By:2014/3/1 1:03:00 [只看该作者]

错误提示:JOIN 操作语法错误。  太折磨人了,自己写的看糊涂了!谁能帮帮我啊!

cmd.CommandText = "select a.档案编号,下次随访日期 as [随访日期],a.姓名,a.联系电话,a.管理类别," & _
        "CStr(DateDiff('d', Date(), 下次随访日期)) + '天' as [距离天数],a.在册状态,a.备注信息 from ({建档信息} a RIGHT JOIN" & _
        " (Select 档案编号,Max(下次随访日期) As [下次随访日期] FROM {高随访} GROUP BY 档案编号 HAVING Max(下次随访日期) <= #" & nv & "# UNION" & _
        " Select 档案编号,Max(下次随访日期) As [下次随访日期] FROM {糖随访} GROUP BY 档案编号 HAVING Max(下次随访日期) <= #" & nv & "# UNION" & _
        " SELECT {建档信息}.档案编号,DateAdd('d', 3, {个人信息}.出生日期) as [下次随访日期] FROM {建档信息} INNER JOIN {个人信息} ON {建档信息}.档案编号 = {个人信息}." & _
        "档案编号 WHERE 管理类别 Like '%儿童%' and 停止管理原因 Is Null and NOT EXISTS (SELECT * FROM {新生儿家庭访视} WHERE {个人信息}.档案编号 = {新生儿家庭访视}.档案编号) UNION" & _
        " Select a.档案编号,Max(b.下次随访日期) As [下次随访日期] From {建档信息} a INNER JOIN (Select 档案编号, 下次随访日期 FROM" & _
        " {新生儿家庭访视} UNION Select 档案编号, 下次随访日期 FROM {满月} UNION Select 档案编号, 下次随访日期 FROM {三月}" & _
        " UNION Select 档案编号, 下次随访日期 FROM {六月} UNION Select 档案编号, 下次随访日期 FROM {八月} UNION Select 档案编号," & _
        " 下次随访日期 FROM {十二月} UNION Select 档案编号, 下次随访日期 FROM {十八月} UNION Select 档案编号, 下次随访日期 FROM" & _
        " {二十四月} UNION Select 档案编号, 下次随访日期 FROM {三十月} UNION Select 档案编号, 下次随访日期 FROM {三岁} UNION Select 档案编号, 下次随访日期 FROM {三岁半} UNION Select" & _
        " 档案编号, 下次随访日期 FROM {四岁} UNION Select 档案编号, 下次随访日期 FROM {五岁} UNION Select 档案编号, 下次随访日期 FROM" & _
        " {六岁}) b on a.档案编号 = b.档案编号 WHERE a.管理类别 Like '%儿童%' GROUP BY a.档案编号 HAVING Max(下次随访日期)" & _
        " <= #" & nv & "#) b on a.档案编号 = b.档案编号 where a.村委会名称 = '" & cwh &"' And a.停止管理原因 Is null ORDER BY b.下次随访日期) RIGHT JOIN" & _
        " (SELECT {建档信息}.档案编号,{建档信息}.建档日期 as [下次随访日期] FROM {建档信息} INNER JOIN {个人信息} ON {建档信息}.档案编号 = {个人信息}." & _
        "档案编号 WHERE 管理类别 Like '%孕产妇%' and 停止管理原因 Is Null and NOT EXISTS (SELECT * FROM {产前随访} WHERE {个人信息}.档案编号 = {产前随访}.档案编号) UNION" & _
        " Select a.档案编号,Max(下次随访日期) As [下次随访日期] From {建档信息} a INNER JOIN (Select 档案编号,Max(下次随访日期) As [下次随访日期] FROM {产前随访} GROUP BY 档案编号 HAVING Max(下次随访日期) <= #" & nv & "# UNION" & _
        " Select 档案编号,Max(下次随访日期) As [下次随访日期] FROM {第2-5次产前} GROUP BY 档案编号 HAVING Max(下次随访日期) <= #" & nv & "# UNION" & _
        " Select 档案编号,Max(下次随访日期) As [下次随访日期] FROM {产后访视} GROUP BY 档案编号 HAVING Max(下次随访日期) <= #" & nv & "# ) b on a.档案编号 = b.档案编号 WHERE a.管理类别 Like '%孕产妇%' GROUP BY a.档案编号 HAVING Max(下次随访日期)" & _
        " <= #" & nv & "#) c on a.档案编号 = c.档案编号 where a.村委会名称 = '" & cwh &"' And a.停止管理原因 Is null ORDER BY c.下次随访日期"
        


 回到顶部
帅哥哟,离线,有人找我吗?
ericsky
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:361 积分:3810 威望:0 精华:0 注册:2012/4/16 20:20:00
  发帖心情 Post By:2014/3/1 1:28:00 [只看该作者]

佩服!!

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/1 8:54:00 [只看该作者]

楼主不如这样:

说明白,从哪几张表、根据什么条件查询,最后形成什么样的查询表。

查询表用手工填写几行正确的查询结果。

也许别人不用你现在的方法,另有其他简洁的方法。

记得例子发上来,有所参照。


 回到顶部