0
我有3個CTE的查詢。我很好奇如何將參數傳遞給它們。如果我聲明在的查詢東西頂部傳遞參數給CTE
申報@prioryear VARCHAR(5) 組@prioryear的效果= '2014'
申報@currentyear VARCHAR(5) 組@prioryear =' 2015'
那麼我怎樣才能將這些變量傳遞給CTE?我一直試圖在CTE名字後面加上paren,但似乎沒有人想通過。
謝謝, 喬
`
with paidPrior as (
SELECT DISTINCT des_heapplicationSet.des_PeopleId
FROM des_heapplicationSet INNER JOIN
des_zyearSet ON des_heapplicationSet.des_YearId = des_zyearSet.des_zyearId INNER JOIN
des_zapplicationstatusSet ON des_heapplicationSet.des_ApplicationStatusId = des_zapplicationstatusSet.des_zapplicationstatusId
WHERE (des_zyearSet.des_YearText = '2014') AND (des_zapplicationstatusSet.des_applicationstatustext = 'paid') and des_IsMaster =0
),
allCurrent as (
SELECT DISTINCT des_heapplicationSet.des_PeopleId
FROM des_heapplicationSet INNER JOIN
des_zyearSet ON des_heapplicationSet.des_YearId = des_zyearSet.des_zyearId
WHERE (des_zyearSet.des_YearText = '2015') and des_IsMaster =0
),
peopleSet as (
select distinct des_PeopleId, MAX(des_ApplicationNumber) as appNum
from des_heapplicationSet
where des_PeopleId in (select * from paidPrior) and des_PeopleId not in (select * from allCurrent)
group by des_PeopleId
)
SELECT des_zterritorySet.des_TerritoryText, des_hepeopleSet.des_PeopleNumber, des_hepeoplenameSet.des_FirstName, des_hepeoplenameSet.des_LastName, des_headdressmasterSet.des_AddressLine,
des_headdressmasterSet.des_FinalCity, des_headdressmasterSet.des_Zip5, des_headdressmasterSet.des_CountyName, 'WI' as stateOfWi, des_hepeoplephoneSet.des_PhoneNumber,
des_heapplicationSet.des_EmailAddress
FROM des_heapplicationSet INNER JOIN
des_hepeopleSet ON des_heapplicationSet.des_PeopleId = des_hepeopleSet.des_hepeopleId INNER JOIN
des_headdressmasterSet ON des_heapplicationSet.des_MailingAddressId = des_headdressmasterSet.des_headdressmasterId INNER JOIN
des_zterritorySet ON des_heapplicationSet.des_TerritoryId = des_zterritorySet.des_zterritoryId INNER JOIN
des_hepeoplenameSet ON des_heapplicationSet.des_PeopleNameId = des_hepeoplenameSet.des_hepeoplenameId LEFT OUTER JOIN
des_hepeoplephoneSet ON des_heapplicationSet.des_PeoplePrimaryPhoneId = des_hepeoplephoneSet.des_hepeoplephoneId
where des_ApplicationNumber in (select appnum from peopleSet) and des_TerritoryText = 'Adams'
order by des_TerritoryText
`
中將'2015'替換爲@currentyear,只要我將declare語句添加到頂部即可。我收到 消息319,級別15,狀態1,行5 關鍵字'with'附近的語法不正確。如果此語句是公用表表達式,xmlnamespaces子句或變更跟蹤上下文子句,則前面的語句必須以分號結尾。 錯誤 – tjcinnamon 2015-02-07 19:23:41
duh!只需要參數後面的分號! – tjcinnamon 2015-02-07 19:28:32
嗯,很多更新的語法需要;而且很容易忘記 - 我自己做足夠多:) – Brad 2015-02-07 19:33:18