У меня небольшая проблема с оператором ORDER BY .
Вот мой запрос (извините, я знаю, что он немного длинный, но я уже много кода обрезал)
(SELECT AssAttrezzi.ID, AssBombole.matricola, CONCAT(AssBombole.matricola, ' - ', Bombole.nome) AS Descrizione
FROM AssAttrezzi INNER JOIN
AssBombole
ON AssBombole.matricola = AssAttrezzi.attrezzoID INNER JOIN
Bombole
ON Bombole.ID = AssBombole.tipoBombolaID
WHERE AssAttrezzi.cantiereID=1
) UNION
(SELECT AssAttrezzi.ID, Saldatrici.matricola,CONCAT(Saldatrici.matricola, ' - ', Saldatrici.nome) AS Descrizione
FROM AssAttrezzi INNER JOIN
Saldatrici
ON Saldatrici.matricola = AssAttrezzi.attrezzoID
WHERE AssAttrezzi.cantiereID = 1
) UNION
(SELECT AssAttrezzi.ID, AssBanchiGlad.idAtrezzo, CONCAT(AssBanchiGlad.idAtrezzo, ' - ', BanchiGladiator.nome) AS Descrizione
FROM AssAttrezzi INNER JOIN
AssBanchiGlad
ON AssBanchiGlad.idAtrezzo = AssAttrezzi.attrezzoID INNER JOIN
BanchiGladiator
ON BanchiGladiator.ID = AssBanchiGlad.bancoID
WHERE AssAttrezzi.cantiereID = 1
) ORDER BY LEN(matricola), matricola
Проблема в том, что я ставлю ORDER BY в конце каждого SELECT Это дает мне ошибку:
Неправильно синтаксис вблизи UNION
Но когда я пытаюсь поставить ORDER BY в конце всего, это выдает мне еще одну ошибку:
Если ORDER Оператор BY включает оператор UNION, INTERSECT или EXCEPT, элементы инструкции должны быть указаны в списке выбора.
Что? Я хотел бы заказать *. Matricola в основном matricola для меня является важным.