Как найти значение NULL в SQL Union Statemet - PullRequest
0 голосов
/ 01 мая 2019

Невозможно найти, какие платежи не были сделаны из оператора SQL нужно найти и перечислить все неоплаченные счета

Когда я запускаю этот SQL, я сталкиваюсь с "вводом параметра", хотя не установил никаких критериев

Пожалуйста, найдите код ниже

Я устал использовать = и

SELECT TraderAccomodationPaymentNo as PaymentNo, AmountPaid as PaidAmount, DateOfPayment as DatePaid, TraderAccomodationInvoiceNo as InvoiceNo, PaymentMethod as PaymentType
FROM [TraderAccomodationPayment] 
WHERE PaidAmount IS NULL

UNION 

SELECT TraderSeminarPaymentNo as PaymentNo, AmountPaid as PaidAmount, DateOfPayment as DatePaid, TraderSeminarInvoiceNo as InvoiceNo, PaymentMethod as PaymentType
FROM [TraderSeminarPayment]
WHERE PaidAmount IS NULL

UNION

SELECT AttendeeAccommodationPaymentNo as PaymentNo, AmountPaid as PaidAmount, DateOfPayment as DatePaid, AttendeeAccommodationInvoiceNo as InvoiceNo, PaymentMethod as PaymentType
FROM [AttendeeAccomodationPayment]
WHERE PaidAmount IS NULL

UNION 

SELECT AttendeeSeminarPaymentNo as PaymentNo, AmountPaid as PaidAmount, DateOfPayment as DatePaid, AttendeeSeminarInvoiceNo as InvoiceNo, PaymentMethod as PaymentType
FROM [AttendeeSeminarPayment]
WHERE PaidAmount IS NULL

Я бы хотел найти все неоплаченные счета.

1 Ответ

0 голосов
/ 01 мая 2019

Вы не можете использовать псевдонимы столбцов в WHERE.MS Access не распознает PaidAmount, поэтому он предполагает, что это параметр, и просит вас ввести значение.

Вам необходимо использовать исходное имя столбца.Я также настоятельно рекомендую UNION ALL, если вы не хотите нести дополнительные накладные расходы на удаление дубликатов.

SELECT TraderAccomodationPaymentNo as PaymentNo, 
       AmountPaid as PaidAmount,
       DateOfPayment as DatePaid, 
       TraderAccomodationInvoiceNo as InvoiceNo, 
       PaymentMethod as PaymentType
FROM TraderAccomodationPayment
WHERE AmountPaid IS NULL
UNION ALL
SELECT TraderSeminarPaymentNo as PaymentNo,
       AmountPaid as PaidAmount,
       DateOfPayment as DatePaid, 
       TraderSeminarInvoiceNo as InvoiceNo,
       PaymentMethod as PaymentType
FROM TraderSeminarPayment
WHERE AmountPaid IS NULL
UNION ALL
SELECT AttendeeAccommodationPaymentNo as PaymentNo,
       AmountPaid as PaidAmount,
       DateOfPayment as DatePaid, 
       AttendeeAccommodationInvoiceNo as InvoiceNo,
       PaymentMethod as PaymentType
FROM AttendeeAccomodationPayment
WHERE AmountPaid IS NULL
UNION ALL
SELECT AttendeeSeminarPaymentNo as PaymentNo, 
       AmountPaid as PaidAmount,
       DateOfPayment as DatePaid, 
       AttendeeSeminarInvoiceNo as InvoiceNo, 
       PaymentMethod as PaymentType
FROM AttendeeSeminarPayment
WHERE AmountPaid IS NULL;

Квадратные скобки также излишни.

...