Оператор SQL Select Case с условием Where во вложенной таблице

Мне нужно вставить оператор SELECT CASE, чтобы добавить столбец "acct_profile_ext.acct_pay_terms" во вложенную таблицу условий. Таким образом, единственная таблица, которая может быть связана с этой таблицей, - это "acct_profile", то есть "acct_profile.acct_id = acct_profile_ext.acct_id". Проблема в том, что эта таблица "acct_profile" также сильно связана с другой таблицей, поэтому мне нужно добавить этот столбец, не влияя на результат другой таблицы.

Итак, теперь я вставил оператор в часть столбца, но я не уверен, как добавить столбец с условием WHERE внутри оператора SELECT CASE.

(SELECT CASE acct_profile_ext.acct_pay_terms
WHEN 'CASH' THEN
(SELECT acct_profile_ext.acct_pay_terms FROM acct_profile_ext, acct_profile
WHERE acct_profile.acct_id = acct_profile_ext.acct_id)
WHEN 'CHEQUE' THEN
(SELECT acct_profile_ext.acct_pay_terms FROM acct_profile_ext, acct_profile
WHERE acct_profile.acct_id = acct_profile_ext.acct_id)
ELSE NULL
END
FROM acct_profile_ext)

Пожалуйста, посоветуйте и помогите. Спасибо.

Образцы данных и желаемый результат очень помогут, так как ваш вопрос неясен. 1. Что вы подразумеваете под «без эффекта результат другой таблицы»? Вставка влияет ТОЛЬКО на имя таблицы, следующее за словом «вставить», независимо от объединений. 2. Ваши подзапросы такие же в случае CASH и CHECK 3. Вероятно, лучше выполнить несколько соединений вместо подзапросов 4. Многие посоветуют перейти к синтаксису внутреннего соединения, а не к старому синтаксису «tablename1, tablename2».

George Menoutis 16.07.2018 14:01

Почему вы используете эти подвыборки, а не просто обычные join?

iamdave 16.07.2018 14:02

@iamdave явно ОП думает, что это все еще 1989 год. :)

Larnu 16.07.2018 14:17

Также MySQL и SQL Server - это совершенно разные продукты. Пожалуйста, пометьте только соответствующую СУБД. Учитывая, что вы отметили SQL Server 2008, я предполагаю, что это то, что вы используете, а не MySQL.

Larnu 16.07.2018 14:18

Пора начать использовать соединения в стиле ANSI-92. Они существуют уже более 25 лет. sqlblog.org/2009/10/08/bad-habits-to-kick-using-old-style-jo‌ ins

Sean Lange 16.07.2018 16:05

Но, честно говоря, это требует капитального ремонта. Выражение case используется для возврата скалярного значения, здесь его нет. Нам нужно гораздо больше деталей, чтобы мы могли помочь. Вот отличное место для начала. spaghettidba.com/2015/04/24/…

Sean Lange 16.07.2018 16:06
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
6
109
0

Другие вопросы по теме