Я пытаюсь очистить запрос ниже. В первом перекрестном применении я оцениваю [Store Number]
и [Branch Number]
и возвращаю [Store Name]
, затем в следующих трех перекрестных применениях я использую это [Store Name]
для возврата значений по отдельности для [Phone Number]
, [Contact Name]
и [Contact Title]
. Есть ли способ установить и вернуть все три этих значения только в одном дополнительном перекрестном применении/случай?
SELECT
C.[Store Number]
,B.[Store Name]
,PH.[Phone Number]
,CN.[Contact Name]
,CT.[Contact Title]
FROM [Central_Account] C
cross apply (select[Store Name] = case C.[Store Number]
when 9146 then
case
when C.[Branch Number] In (14, 16, 18)
then 'Community Store'
end
when 8147 Then
case
when C.[Branch Number] In (24, 26, 28)
then 'City Store'
end
when 7148 Then
case
when C.[Branch Number] In (34, 36, 38)
then 'County Store'
end
else
'State Store'
end )as B
cross apply (select [Phone Number] = case B.[Store Name]
when 'Community Store' Then
'414.882.8278'
when 'City Store' Then
'221.332.6221'
when 'County Store' Then
'211.949.2008'
else
'635.588.1878'
end ) as PH
cross apply (select [Contact Name] = case B.[Store Name]
when 'Community Store' Then
'John A. Smith'
when 'City Store' Then
'Marcus D. Jones'
when 'County Store' Then
'Mica L. Johnson'
else
'Elroy Watkins, Jr.'
end ) as CN
cross apply (select [Contact Title] = case B.[Store Name]
when 'Community Store' Then
'Executive Vice President'
when 'City Store' Then
'Manager'
when 'County Store' Then
'President of Operations'
else
'Clerk'
end ) as CT
CASE
. Вы должны хранить эти данные (например, номер телефона магазина) в таблицах и объединять их. Не храните данные в запросах. - person sticky bit   schedule 11.06.2018