2013-05-17 95 views
0

我有下面的SQL查詢。我想在執行相同的查詢,但我不能將它轉換並沒有得到正確的結果。我可以得到正確的轉換格式嗎?轉換SQL查詢到VB腳本

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 
+2

你有什麼代碼到目前爲止爲你的腳本?你會得到什麼錯誤? –

+1

SQL查詢本身是不會改變的,只是因爲你從不同的環境下(在這種情況下,VBScript)的運行它。 –

回答

1

林不知道你的字符串轉換爲VBscript ...喜歡的安斯加爾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

+0

非常感謝您的幫助 – Venaikat

+0

@venkat的youre歡迎 – 2013-05-17 10:41:12

+2

VBScript不知道恆定'adUseClient',因此必須將其定義爲'常量爲adUseClient = 3'。 –