标题:大家看一下,这个 SQL 语句怎么修改!
取消只看楼主
liudetao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-11-3
得分:0 
回复 19 楼 tlliqi
其实我的意思是这样的,我想根据这个语句select 地籍号1 from MA33 where 地籍号1 like'660610%' ORDER BY 地籍号1,检索出满足相应条件的地籍号1字段中的数据,这个执行时也是正确的,没有问题!!!
 
那为什么还要加上这句代码呢?select tablename from mpdb_fldinf where fldname='特别',是这样的,前面语句中的MA33,是一个表,而且实际存在,但这个表我们信息系统每次生成的名字都不一样,这次是MA33,下次可能是MA68,名字不固定,但数据结构都是一样,而且都有数据,那我每次检索出满足相应条件的地籍号1字段中的数据时,都要去修改语句中的MA33,很麻烦!但这个不固定名字的表,它的名称在后面语句中的mpdb_fldinf表中的tablename字段中存在,只要满足where fldname='特别'这个条件,就可查询出这个表名!! 这样的话,我就不用每次都去修改这个语句select 地籍号1 from MA33 where 地籍号1 like'660610%' ORDER BY 地籍号1中的MA33表名了!!!

[ 本帖最后由 liudetao 于 2014-11-7 14:07 编辑 ]
2014-11-07 14:00
liudetao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-11-3
得分:0 
回复 22 楼 tlliqi
谢谢,太感谢了!!
2014-11-07 14:42
liudetao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-11-3
得分:0 
回复 22 楼 tlliqi
唉,试了赋变量,可还是不行,大侠帮帮忙,写的细些,谢谢了!!1
2014-11-07 15:24
liudetao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-11-3
得分:0 
回复 25 楼 tanxiaobin
可以,输出结果是正确的,谢谢!
2014-11-07 16:13
liudetao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-11-3
得分:0 
回复 25 楼 tanxiaobin
朋友,这些语句放在EXCEL的VBA中代码应该如何修改呢?

我的VBA是这样的:
Sub GetData1()
     
     
     Dim server As String
     Dim strDatabase As String
     Dim user As String
     Dim pwd As String
     Dim djhcx As String

     server = Cells(3, 8).Value
     strDatabase = Cells(4, 8).Value
     user = Cells(5, 8).Value
     pwd = Cells(6, 8).Value
     djhcx = Cells(7, 8).Value
   
     Dim conn0
     Set conn0 = CreateObject("ADODB.Connection")
     conn0.Open ("driver={SQL Server};server=" & server & ";uid=" & user & ";pwd=" & pwd & ";database=" & strDatabase & ";")
     sql0 = "select 地籍号1 from MA33 where 地籍号1 like'" & djhcx & "%' ORDER BY 地籍号1"
     sql00 = "select count(*) as 记录数 from MA33 where 地籍号1 like'" & djhcx & "%'"
     Dim ds0
     Set ds0 = CreateObject("ADODB.Recordset")
     With ds0
         .Open sql0, conn0
         Range("a2:a65536").ClearContents
         Range("a1").Offset(1, 0).CopyFromRecordset ds0
     End With
     Set ds0 = Nothing
     
     Dim ds00
     Set ds00 = CreateObject("ADODB.Recordset")
     With ds00
         .Open sql00, conn0
         MsgBox "从EXCEL第二行格开始,根据数据查询条件" & djhcx & ",共从苍穹图形库" & strDatabase & "中读取" & ds00("记录数") & "条数据记录更新到EXCEL的A列(图形地籍号)之中!", 16, "A列(图形地籍号)数据更新"
     End With
     Set ds00 = Nothing
     
     conn0.Close
     Set conn0 = Nothing
     
     MsgBox "此次数据更新完成!", 16, "温馨提示"
  
        
     Exit Sub
   
  
End Sub



[ 本帖最后由 liudetao 于 2014-11-7 17:09 编辑 ]
2014-11-07 16:38
liudetao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-11-3
得分:0 
回复 29 楼 mxbing1984
朋友,拼SQL如何弄,再详细些提示,谢谢!     
我这样拼了一下,可是提示“:冒号附近存在语句错误!”
sql0 = "Declare @Table Varchar(100):Select @Table=tablename from tx.mpdb_fldinf where fldname='地籍号':Exec ('select 地籍号1 from '+@Table+ ' where 地籍号1 like''660610%'' ORDER BY 地籍号1')"



[ 本帖最后由 liudetao 于 2014-11-8 12:08 编辑 ]
2014-11-08 09:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438057-1-1.html




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

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