Я пытался написать запрос для двух таблиц ( Квитанция и Квитанция ), чтобы найти повреждение данных, если квитанция не содержит строк.У меня есть .bak файла базы данных на диске Google, но я не уверен, что кто-то здесь захочет помочь мне так далеко: D
т.е. Написать запроснайти повреждение данных, если квитанция не содержит строк.(СОВЕТ: используйте таблицы Receipt и ReceiptLine).- Вернуть столбцы UniqReceipt и ReferNumber.
Мне нужно вернуть столбцы 'UniqReceipt' и 'ReferNumber'.
Это похоже на первичный ключ Receipt таблица - это столбец «UniqReceipt», а первичный ключ ReceiptLine - столбец «UniqReceiptLine», а внешний ключ «UniqReceipt» - ССЫЛКИ на столбец «UniqReceipt» в таблице Receipt
Таблица Receipt выглядит следующим образом:
, а таблица ReceiptLine выглядит следующим образом:
Iв конечном итоге придумал это:
SELECT r.UniqReceipt, r.ReferNumber
FROM Receipt r
INNER JOIN ReceiptLine l ON r.UniqReceipt = l.UniqReceipt
WHERE datalength(l.ReceiptLineNumber) = 0 OR ReceiptLineNumber = '-1' OR ReceiptLineNumber IS NULL
Кто-нибудь знает, если это лучший способ реализовать это?Я в основном посмотрел, когда ReceiptLineNumber был пуст или NULL или '-1' (мы используем -1 вместо NULL) и присоединился, когда UniqReceipt = UniqReceipt в обеих таблицах.
Я не был уверен, используете ли переменные или некоторыеоператор print лучше проверить на предмет повреждения данных.
Результат запроса: