日期:2014-05-16  浏览次数:20529 次

关于sql查询语句的一个问题
select sj, (select count(*) as jls from scjh2.dbo.xxr where xx = '2014-2-10') as xxr, cczt from bsv5.dbo.kt_jl where user_serial = '100101' and year(sj)='2014' and month(sj)='2' and day(sj)='10' order by sj

select sj, (select count(*) as jls from scjh2.dbo.xxr where xx = '2014-2-10' and zt = 0) as xxr, cczt from bsv5.dbo.kt_jl where user_serial = '100101' and year(sj)='2014' and month(sj)='2' and day(sj)='10' order by sj
多出的  and zt = 0 后,我在页面应用时,查询记录数为0了。但查询分析器上却是有记录的。这个是什么回事,请高手指点。谢谢
------解决方案--------------------
您正常不加条件,页面应用是否显示zt = 0的数据?
------解决方案--------------------
建议用SQL Profiler工具跟踪出真正执行的TSQL语句.
------解决方案--------------------
同一个条件还是不同条件(前提加了zt=0)有时候有数据有时候没有?
------解决方案--------------------
时间探查器跟一下吧!看看跟出来什么语句!
------解决方案--------------------
用Profiler查一下你那个“查不出数据”的界面调用了什么SQL语句
------解决方案--------------------
你看看下面这个查出来是什么东西,我怀疑你这个有语法错误导致你第二句查出来的结果为0,起始你加这个就是想显示一个固定的数,没有啥意义


select count(*) as jls from scjh2.dbo.xxr where xx = '2014-2-10' and zt = 0


实在不行你就把这个统计数目保存到一个变量里面,再把变量放到你第2句SQL中
------解决方案--------------------

------解决方案--------------------
这个很有可能是

引用:
我给出的两条sql呢,在页面中,上面那条显示正常,下面的加了zt = 0 就没记录集。其他的呢,更改了user_serial 的查询条件后(user_serial = '100100'),加不加zt = 0 都可以,都能正常的在页面显示。


你用sql profiler跟踪一下实际的sql把,不太可能说同一个语句在你的页面上,和在查询分析器中的结果不一样的。

肯定是哪儿有问题,导致不一样的。