SQL语句在查询分析器中运行时有结果反馈,但放到VB程序中运行却没有结果,是什么原因? 10

本人有一程序在编写时用到SQL语句,语句放在查询分析器中是可以运行的,有结果,但把语句放到VB程序中后没有结果反馈.语句是有点复杂,有点长,但不知是何原因?SQL1="s... 本人有一程序在编写时用到SQL语句,语句放在查询分析器中是可以运行的,有结果,但把语句放到VB程序中后没有结果反馈.语句是有点复杂,有点长,但不知是何原因?
SQL1 = "select *,IDENTITY(int, 1,1) as 临时 into bb from (Select 类别 , 项目名称 , 数量,单价,金额 From ( " _
& " Select B.隶属类别 类别,B.编号 As 项目编号, B.名称 As 项目名称,B.规格说明,B.计量单位,B.编码,B.医保编码,B.保险类别 As 医保类别, " _
& " B.新农编码 As 农保编码,B.新农分类 As 农保类别,A.单价,sum(A.数量) 数量,sum(A.单价*A.数量) As 金额,A.自付系数B As 自付系数 From " _
& " ALL住院记帐列表 A Inner Join T收费项目 B On A.费用明细=B.编号 And A.住院编号='" & Text1.Text & "' And A.记帐方式<>'处方记帐' And A.作废=0 " _
& " group by B.隶属类别,B.编号, B.名称,B.规格说明,B.计量单位,B.编码,B.医保编码,B.保险类别,B.新农编码,B.新农分类,A.单价,A.自付系数B " _
& " Union All " _
& " Select B.药品类型+'费' 类别,B.编号,B.名称,B.规格,B.药品单位,B.编码,B.医保编码,B.保险类别,B.新农编码,B.新农类别,A.单价,sum(A.数量) " _
& " 数量,sum(A.单项金额) 单项金额,A.自付系数B From ALL住院划价数据 A Inner Join ALL住院划价单 C On A.序号=C.序号 And C.住院编号='" & Text1.Text & "' " _
& " And (C.状态='S' Or C.已被记帐=1) And C.作废=0 Inner Join T药品卫材 B On A.药品编号=B.编号 " _
& " group by B.药品类型,B.编号,B.名称,B.规格,B.药品单位,B.编码,B.医保编码,B.保险类别,B.新农编码,B.新农类别,A.单价,A.自付系数B " _
& " ) VV group by 类别,项目名称 ,单价, 数量,金额) WW select case when 临时 in (select min(临时) " _
& " From bb group by 类别) then 类别 else '' end 列表,项目名称,数量,单价,金额,row_number() over (PARTITIon by 类别 " _
& " order by 项目名称) AS 新临时 From bb order by 类别 drop table bb "
展开
 我来答
xbj_hyml
2013-08-16 · TA获得超过285个赞
知道小有建树答主
回答量:552
采纳率:100%
帮助的人:427万
展开全部
这么强大的语句..先 表示钦佩
如果说你在程序分析器里面可以有结果,那么你就在这句代码的一下一句加个断点,然后在立即窗口里看下 这个sql语句输出是不是跟你在分析器里的语句一样,然后再找找原因
更多追问追答
追问
加了断点,运行后此数据集为空,没有记录形成
追答
我的意思是 输出 sql1=??
就是在立即窗口中:?SQL1 然后回车,你会得到很长的一段sql语句

看这个语句跟你在分析器中语句是不是一样,而不是执行这个语句后看结果集
或者你直接复制这个sql语句 到分析器中执行一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZESTRON
2024-09-04 广告
表面污染分析包括评估表面上存在的颗粒、残留物或物质。通过利用显微镜、光谱学和色谱法等技术,分析人员可以识别和表征污染物,以确定其成分和来源。这种分析在电子、制药和制造等各个行业中至关重要,以确保产品质量、性能和安全性。了解表面污染有助于实施... 点击进入详情页
本回答由ZESTRON提供
srhslj
2013-08-16 · 超过12用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:23.8万
展开全部
续行应该是 & _ 而不是 _ & 那个下划杠是在&后面的。
追问
不是,你把这语句复制到记事本看看,应该是没有问题的
追答
我是复制到VB的编辑环境里的,把续行符改一下就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sedjamm
2013-08-17 · TA获得超过211个赞
知道小有建树答主
回答量:212
采纳率:75%
帮助的人:58.4万
展开全部
像你这么长的SQL 应该在SQL里写函数或过程比较好.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wu_kang_lin
2013-08-17 · TA获得超过170个赞
知道小有建树答主
回答量:490
采纳率:50%
帮助的人:312万
展开全部
access 不支持 case 语句。这个可能是主要原因。
追问
这个语句访问的数据表是SQL中的,不是ACCESS的,
追答
'处方记帐'     C.状态='S'    这两个值按字符串值重写呢。
then 类别 else '' end 这个空你先赋个值看看。

整个语法空格太多了。调整一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
提供其他软件凭证导入金蝶服务
2013-08-18 · 超过33用户采纳过TA的回答
知道答主
回答量:150
采纳率:100%
帮助的人:28.6万
展开全部
你是不是还没有和数据库建立连接???如果建立连接后,在查询分析器可以的话,那在vb中应该也是可以的
追问
这个应该有了,谢谢
追答
我遇到过一种,能在sql中执行,但是不能再vb中执行的情况,是这样的,你参考一下,是不是对你有帮助;
我在vb中条用conver函数,但是运行时,总是提示"子过程或函数未定义",百度后发现,vonvert函数,不能直接在vb中使用,变动的,将convert函数,作为一个字符串处理的(给convert两边加上双引号),传递到sql语句中,才能执行.还有一种情况是,sql的嵌套,把嵌套单独的分开,先执行嵌套的最内内层的语句,在执行外层的语句,你试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式