| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 987 人关注过本帖
标题:数据库查询和页面显示不一样的结果
只看楼主 加入收藏
等待冰柠檬
Rank: 2
来 自:浙江温州
等 级:论坛游民
帖 子:208
专家分:70
注 册:2008-6-25
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:7 
数据库查询和页面显示不一样的结果
小弟的存储过程:
程序代码:
[color=#0000FF]set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
Create PROCEDURE [dbo].[BranchStatistic_GetByAll] --获取网点统计运费
@branchname varchar(50)='',
@startdate varchar(50)='',
@enddate varchar(50)='',
@branchcode varchar(50)='',
@usertype int
AS
SET NOCOUNT ON
declare @mssql nvarchar(4000)
if (@usertype=0)

set @mssql='Select Branchs.BranchCode,Branchs.BranchName
    ,Income = ISNULL(sum(Orders.PSettleAmount),0)
        ,Outcome = ISNULL(sum(Orders.ISettleAmount),0)
from Branchs
left join Orders on Orders.StartBranchCode = Branchs.BranchCode where 1 = 1'
else

set @mssql='Select Branchs.BranchCode,Branchs.BranchName
    ,Income = ISNULL(sum(Orders.PSettleAmount),0)
        ,Outcome = ISNULL(sum(Orders.ISettleAmount),0)
from Branchs
left join Orders on Orders.StartBranchCode = Branchs.BranchCode and StartBranchCode = '''+ @branchcode+ '''where 1 = 1'

if(len(@branchname) > 0)
begin
   set @mssql=@mssql+' and Branchs.BranchName like ''%'+@branchname+'%'''
end

if(len(@startdate)>0)
begin
    set @mssql=@mssql+' and Orders.CreateTime>='''+@startdate+''''
end

if(len(@enddate)>0)
begin
    set @mssql=@mssql+' and Orders.CreateTime<='''+@enddate+''''
end
set  @mssql=@mssql + 'Group by Branchs.BranchCode,BranchName'

exec sp_executesql @mssql
    SET NOCOUNT OFF
[/color]

SQL查询语句
程序代码:
select Branchs.BranchCode,Branchs.BranchName
    ,Income = ISNULL(sum(Orders.PSettleAmount),0)
        ,Outcome = ISNULL(sum(Orders.ISettleAmount),0)
from Branchs
left join Orders on Orders.StartBranchCode = Branchs.BranchCode
where 1 = 1 

Group by Branchs.BranchCode,BranchName
查询出来的结果
图片附件: 游客没有浏览图片的权限,请 登录注册


当我把参数传到存储过程里面
USE [MemberDB_lg_ceshi]
GO

DECLARE    @return_value int

EXEC    @return_value = [dbo].[BranchStatistic_GetByAll]
        @usertype = 0

SELECT    'Return Value' = @return_value

GO
执行后 跟在SQL里面查询的结果一样
但是在 网页里面只显示一条记录。。。
图片附件: 游客没有浏览图片的权限,请 登录注册


希望高手帮忙下!这是什么原因。。。






搜索更多相关主题的帖子: 数据库 页面 结果 查询 
2010-07-29 16:59
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:10 
很明显是你页面中传的值影响了结果。
还有 set  @mssql=@mssql + ' Group by Branchs.BranchCode,BranchName'
少了空格

[ 本帖最后由 bygg 于 2010-7-29 17:27 编辑 ]

飘过~~
2010-07-29 17:26
等待冰柠檬
Rank: 2
来 自:浙江温州
等 级:论坛游民
帖 子:208
专家分:70
注 册:2008-6-25
收藏
得分:0 
不是这个问题吧?改了还是一样。。 不应该是分组

[ 本帖最后由 等待冰柠檬 于 2010-7-29 20:15 编辑 ]
2010-07-29 19:51
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
你的存储过程与SQL都是用的同样的分组,所以不应该是这个问题。
而应该是你传入的参数不一样,你跟踪一下看你调用存储过程时传入的参数是什么。

飘过~~
2010-07-29 21:04
等待冰柠檬
Rank: 2
来 自:浙江温州
等 级:论坛游民
帖 子:208
专家分:70
注 册:2008-6-25
收藏
得分:0 
还有就是我想请问下
left join Orders on Orders.StartBranchCode = Branchs.BranchCode where 1 = 1
如果我不加where 1 = 1
数据显示5条
加了 只显示1条 就是截图的那条 什么原因?
2010-07-29 21:33
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
where 1 = 1这个并不会影响条件的啊
但是前面有left join ,估计与这个有影响,嘿嘿,猜的

飘过~~
2010-07-29 22:35
等待冰柠檬
Rank: 2
来 自:浙江温州
等 级:论坛游民
帖 子:208
专家分:70
注 册:2008-6-25
收藏
得分:0 
请问版主有QQ么?加下我好么?我短信发给你了
2010-07-30 07:55
等待冰柠檬
Rank: 2
来 自:浙江温州
等 级:论坛游民
帖 子:208
专家分:70
注 册:2008-6-25
收藏
得分:0 
解决了!
图片附件: 游客没有浏览图片的权限,请 登录注册

日期放到位置
一个是放在on
一个是放在where
2010-07-30 08:42
快速回复:数据库查询和页面显示不一样的结果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017021 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved