我有以下SQL查询。我想在vbscript中执行相同的查询,但我无法转换它并且无法获得正确的结果。我可以获得正确的转换格式吗?
SELECT distinct CASE
WHEN enty_typ_cd = 'acct' THEN 'Account : '
WHEN enty_typ_cd = 'pfolio' THEN 'Portfolo : '
END +
a.mstr_shrt_nm_id as [ ]
FROM RCMglbl..nav_nt a, RCMglbl..enty_mstr b
WHERE a.enty_id = b.id AND office = 'sf'
AND mnth_end_dt <> (select lst_mo_end_dt from RCMglbl..proc_dt)
AND mnth_end_dt is not NULL
答案 0 :(得分:1)
我不确定你将字符串转换为VBscript
是什么意思......就像Ansgar Wiechers说的那样,字符串保持不变,环境改变了
无论如何......
将此代码放在notepad.exe
中
编辑connection string以适合您的服务器
保存.vbs
分机的文件
找到并运行它!
Const adUseClient = 3
Dim cn
Set cn = CreateObject("ADODB.Connection")
dim sql
sql = "SELECT distinct CASE " & _
"WHEN enty_typ_cd = 'acct' THEN 'Account : ' " & _
"WHEN enty_typ_cd = 'pfolio' THEN 'Portfolo : ' " & _
"END + a.mstr_shrt_nm_id as [ ] " & _
"FROM RCMglbl..nav_nt a, RCMglbl..enty_mstr b " & _
"WHERE a.enty_id = b.id AND office = 'sf' " & _
"AND mnth_end_dt <> (select lst_mo_end_dt from RCMglbl..proc_dt) " & _
"AND mnth_end_dt is not NULL"
with cn
.CursorLocation = adUseClient
.Open "Driver={SQL Server};Server=SERVER_NAME; Database=DATABASE_NAME; UID=USER_ID_NAME; PWD=PASSWORD"
.CommandTimeout = 0
.Execute(sql)
end with
cn.close
set cn = Nothing
一旦你开始工作,你就必须考虑从查询中获得的结果......因此,我建议你阅读更多关于SELECT STATEMENT和RECORDSET
的信息