我正在學習如何在Excel驅動的SQL查詢中使用參數(實際上我仍然在學習SQL)。感謝helped me build my query to modify the results as I need的好人,我想更進一步,並在Excel中提供一個參數來過濾結果。加入SQL/Excel查詢參數
這裏是我的查詢:
SELECT
fun.FUNCTION_ID
,COALESCE(fun.parent_function, fun2.function_id) as PARENT_FUNCTION
,fun.MODULE_ID
,fun.DESCRIPTION
,fun.FUNCTION_PURPOSE
,fun.PB_OBJECT
,sec.GROUP_ID
,sec.ACCESS_LEVEL
from
MODULE_FUNCTION fun
LEFT JOIN MODULE_FUNCTION fun2
ON fun.function_id = fun2.function_id
AND fun2.function_id IN (SELECT parent_function FROM MODULE_FUNCTION)
LEFT OUTER JOIN FUNCTION_SECURITY sec
ON fun.FUNCTION_ID = sec.FUNCTION_ID
AND sec.GROUP_ID = 'GROUP_NAME'
我需要做的是讓從一隊人跑在excel表此查詢並在第二次加入「GROUP_NAME」提供的組名。不幸的是,我不能使用語法WHERE (sec.GROUP_ID = ?)
(found here),因爲我需要從MODULE_FUNCTION表中提取所有結果,並且只在FUNCTION_SECURITY表的右側插入結果,當提供的組匹配時(在不匹配時保留空值) 。
當我在最後嘗試使用AND (sec.GROUP_ID = ?)
時,我在Excel中得到一個「無效的參數號」。從我所收集到的「?」只能與WHERE一起使用(並且可以在測試查詢中爲我找到)。
我已經嘗試了很多事情,包括聲明@parameter,但無濟於事。
我很想嘗試this technique但我想避免VB如果可能的話。
難道真的那麼簡單嗎?我被VB迷住了,但這看起來很簡單。我會稍後再試,並讓你知道。 – alteredNate
@alteredNate好吧,起初可能會引起混淆,但一旦進入事物擺動,它並不是那麼糟糕。我不確定你對此有多瞭解,所以如果你需要更多的幫助來實現我的答案,請告訴我。我會很樂意詳細解釋。 –
嗯,我實際上知道的很少:)我正要鑽進你的代碼,以及我鏈接到的並試圖理解的代碼。如果您對我的具體案例有更詳細的瞭解,我會非常感激!在SQL查詢,數據透視表和數據庫管理之間,我目前正在學習很多東西,而VB最初並不在這個列表中!哈! – alteredNate