У меня есть таблица платежей. Я хотел бы выбрать несколько столбцов на основе номера квитанции. Затем я хотел бы отобразить столбец условного статуса в зависимости от нескольких значений.
Я написал оператор SQL, который отлично работает, просто для этого:
КОД
SELECT
[Number], [Name], [Amount],
CASE
WHEN [Downloaded by] IS NULL
AND [Request Accepted?] IS NULL
THEN 'Sent to Payments'
WHEN [Downloaded by] IS NOT NULL
AND [Request Accepted?] IS NULL
THEN 'Received by Payments'
WHEN [Downloaded by] IS NOT NULL
AND [Request Accepted?] IS NOT NULL
THEN 'Sent to Finance'
END AS 'Real-time Status'
FROM
[DB]
WHERE
[Request Receipt Id] = 'PR0001'
Я создаю форму, где пользователи смогут прокручивать эти значения, и я хотел бы отобразить другой столбец, который находится в базе данных. Однако я не хочу показывать этот столбец в главном окне поиска. Поэтому я настроил поле поиска так, чтобы оно содержало только 4 столбца (Число, Имя, Сумма и Статус в реальном времени).
Идея в том, что если у меня есть 5-й столбец, он не будет отображаться в основной пользовательской форме, если они не нажмут на него, и он не появится в другом окне.
Моя проблема заключается в настройке этого оператора SQL для организации данных так, как я хочу:
[Number], [Name], [Amount], [Real-time Status], [Description]
Код, который я использовал для этого:
SELECT
[Number], [Name], [Amount],
CASE
WHEN [Downloaded by] IS NULL
AND [Request Accepted?] IS NULL
THEN 'Sent to Payments'
WHEN [Downloaded by] IS NOT NULL
AND [Request Accepted?] IS NULL
THEN 'Received by Payments'
WHEN [Downloaded by] IS NOT NULL
AND [Request Accepted?] IS NOT NULL
THEN 'Sent to Finance'
END AS 'Real-time Status'
FROM
TEP_Payments_Table
WHERE
[Request Receipt Id] = 'PR0001'
UNION
SELECT
[Description]
WHERE
[Request Receipt Id] = 'PR0001'
Однако, когда я пытаюсь это сделать, SQL Server не нравится и выдает ошибки.
Не могли бы вы, ребята, посоветовать, где я иду не так и каков наиболее эффективный способ добиться того, чего я хочу.
Спасибо