У меня есть две таблицы:Выберите дополнительные условно строки из другой таблицы
TableA
PK Alpha Critter Etc
1 A zebra apple
2 C lion orange
3 R giraffe banana
4 D gopher pear
TableC
PK Alpha Animal Misc
1 D beaver kiwi
2 D camel avacado
мне нужен этот результат:
Result
PK Alpha Critter Etc
22 A zebra apple
23 C lion orange
24 R giraffe banana
25 D gopher pear
26 D beaver kiwi
27 D camel avacado
Если значение TableA.Alpha составляет более одного TableC.Alpha с то же самое значение по Select будет:
Select TA.Alpha, TA.Critter, TA.Etc
From TableA TA
и
Select TC.Alpha, TC.Animal, TC.Misc
From TableC TC
на отдельных строках (3 строки в приведенном выше примере)
В противном случае это просто
Select TA.Alpha, TA.Critter, TA.Etc
From TableA TA
(одна строка)
я мог бы использовать КТР. Что-то вроде:
With T_CTE (Alpha,CountAlpha)
AS
(SELECT
TC. Alpha, COUNT(TC.Alpha) as CountAlpha
FROM TableC TC
GROUP BY TC.Alpha
HAVING (COUNT(TC.Alpha) > 1))
Select TA.Alpha, TA.Critter, TA.Etc
From TableA TA
case when T_CTE.Alpha is not null then...else...end
left join T_CTE on T_CTE.Alpha = TA.Alpha
ТаблицаA.Aphpha уникальна. TableC.Alpha не уникален.
Могу ли я назвать другой выбор для дополнительных строк? Есть ли лучший подход? Я также думал о создании временных таблиц и выборе их. Это часть более крупного запроса, но сейчас я хочу сосредоточиться на этой части. Любые предложения? Спасибо.
«TableA.Alpha составляет более одного TableC.Alpha» вы имеете в виду для каждого значение ПК? Ваш пример выглядит как 'UNION' –
Я имел в виду для каждого значения PK в TableA. Альфа в TableA уникальна. Alpha не уникален в TableC. Я редактировал. – user2525015