Я пытаюсь выполнить запрос, чтобы выбрать все заказы, но также отображать имя клиента / клиента из второй таблицы плюс дату последнего счета-фактуры из третьей таблицы.Первоначально я просто делал INNER JOIN
, чтобы получить дату счета-фактуры, однако это показывало только заказы, у которых были счета-фактуры (мне нужно также включать заказы без счетов-фактур, поэтому я знаю, что вместо этого следует использовать правое / левое соединение), ноВторая проблема заключалась в том, что он показывал заказы с несколькими счетами несколько раз.Например, если в заказе было 3 разных даты выставления счета, для каждой была бы строка, а не одна строка с последней датой выставления счета.
Я пытаюсь использовать этот запрос вместо этого, чтобы получить правильные данные
WITH inv AS
(
SELECT
CASE moi.orderNumber,
MAX(moi.datePosted) lastInvoiceDate
FROM
tblManOrderInvoices moi
GROUP BY moi.orderNumber
)
SELECT
CASE mo.orderNumber,
c.companyName,
inv.lastInvoiceDate
FROM
tblManOrders mo
LEFT JOIN
tblClients c ON mo.clientId = c.clientId
LEFT JOIN
inv ON mo.orderNumber = inv.orderNumber
WHERE
ISNULL(mo.isDeleted, 0) = 0
ORDER BY
mo.orderNumber
Но я получаю ошибку (две, но одну и ту же ошибку в разных местах)
Сообщение 102, Уровень 15, Состояние 1, Строка 1
Неверный синтаксис рядом','.
Сообщение 102, уровень 15, состояние 1, строка 3
Неверный синтаксис рядом с ','.
Что не так с моим запросом, который вызывает егопотерпеть неудачу?