麻烦各位老师给看看这条SQL语句的问题出在哪里?

zpingfang 2012-04-18 11:06:17
select distinct a.diqu,a.kahao,a.CheckInNo,a.piaolei,a.ZhengJian,a.CheckInTime,a.RenShu,b.mingcheng,c.mingma,d.mingcheng as mch,e.mingcheng as pl,f.DFMingCheng as zj,g.Expr1 as cf from(select k.CheckInTime,k.RenShu,k.diqu,k.kahao,k.checkinno,k.piaolei,k.ZhengJian from Tbl_checkIn k,(select max(id) as id,zhengjian from Tbl_checkIn group by zhengjian) b where k.id=b.id) a,tbl_diqu b,tbl_ShouPiao c,tbl_YanPiaoDian d,tbl_PiaoLei e,Tbl_SFZ f,zgUser.tbl_S g where a.diqu=b.bianhao and a.KaHao=c.kahao and a.CheckInNo=d.bianhao and left(a.zhengjian,6)=f.SFZBianHao and a.piaolei=e.bianhao and a.ZhengJian=g.ZhengJian and mingma>='18001' and mingma<='18205' order by a.ZhengJian


首先说下这条语句是朋友帮我写的,我的学艺不精,麻烦各位老师帮忙看下这个语句,之前没加g.Expr1、zgUser.tbl_S g,a.ZhengJian=g.ZhengJian这三句是能查出数据的,但是加完后就不显示结果了,也没有报错查询结果为空,g.Expr1表项是证件的使用次数,a.ZhengJian=g.ZhengJian这个筛选条件写法有错误吗?请各位老师帮忙给看下,谢谢啦!
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpingfang 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code
SELECT DISTINCT
a.diqu ,
a.kahao ,
a.CheckInNo ,
a.piaolei ,
a.ZhengJian ,
a.CheckInTime ,
a.RenShu ,
b.mingcheng ,
c……
[/Quote]

但是a表和g表之间zhengjian列的值确实有相同的,g表里记录的是证件和使用次数啊
Mr_Nice 2012-04-18
  • 打赏
  • 举报
回复
SELECT DISTINCT
a.diqu ,
a.kahao ,
a.CheckInNo ,
a.piaolei ,
a.ZhengJian ,
a.CheckInTime ,
a.RenShu ,
b.mingcheng ,
c.mingma ,
d.mingcheng AS mch ,
e.mingcheng AS pl ,
f.DFMingCheng AS zj ,
g.Expr1 AS cf
FROM ( SELECT k.CheckInTime ,
k.RenShu ,
k.diqu ,
k.kahao ,
k.checkinno ,
k.piaolei ,
k.ZhengJian
FROM Tbl_checkIn k ,
( SELECT MAX(id) AS id ,
zhengjian
FROM Tbl_checkIn
GROUP BY zhengjian
) b
WHERE k.id = b.id
) a ,
tbl_diqu b ,
tbl_ShouPiao c ,
tbl_YanPiaoDian d ,
tbl_PiaoLei e ,
Tbl_SFZ f ,
zgUser.tbl_S g
WHERE a.diqu = b.bianhao
AND a.KaHao = c.kahao
AND a.CheckInNo = d.bianhao
AND LEFT(a.zhengjian, 6) = f.SFZBianHao
AND a.piaolei = e.bianhao
AND a.ZhengJian = g.ZhengJian --默认是inner join 的方式,说明在a,g之间,没有对应的zhengjian列的值相同
AND mingma >= '18001'
AND mingma <= '18205'
ORDER BY a.ZhengJian


/*
g.Expr1、zgUser.tbl_S g,a.ZhengJian=g.ZhengJian*/
Mr_Nice 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

SQL code
SELECT DISTINCT
a.diqu ,
a.kahao ,
a.CheckInNo ,
a.piaolei ,
a.ZhengJian ,
a.CheckInTime ,
a.RenShu ,
b.mingcheng ,
c……


但是a表和g表之间zhengjian列的值确实有相同的,g表里记录的是证件和使……
[/Quote]

a,g表单独拿出来,链接一下看看有结果没?
应该还是链接上的问题。
茫茫前路 2012-04-18
  • 打赏
  • 举报
回复
楼主把关联这一节的内容研究一下,就很容易发现问题所在了。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧