@tispoint

Почему пишет про неправильный синтаксис возле Order?

Пример вроде как по учебнику

(SELECT      dbo.PN1.date, dbo.PN2.mp_tn3, dbo.PN2.price, dbo.PN2.id
 FROM           dbo.PN1 INNER JOIN
                         dbo.PN2 ON dbo.PN1.id = dbo.PN2.mp_pn1
 WHERE       (dbo.PN2.mp_tn3 = 31457))
UNION
(SELECT      dbo.NO1.date, dbo.NO2.mp_tn3, dbo.NO2.price, dbo.NO2.id
 FROM           dbo.NO1 INNER JOIN
                         dbo.NO2 ON dbo.NO1.id = dbo.NO2.mp_no1
 WHERE       (dbo.NO2.mp_tn3 = 31457))
ORDER BY 1


UPD
забыл указать Microsoft SQL 2000 + Access 2003 adp

UPD2
Извините за беспокойство, запрос заработал.
Это был глюк той штуки, которая синтаксис проверяет.
  • Вопрос задан
  • 651 просмотр
Пригласить эксперта
Ответы на вопрос 4
Сортировка ORDER BY должна быть по существующему полю
Ответ написан
ORDER BY 1 - 1 это что? название поля? ORDER BY dbo.PN1.date
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
(SELECT
Скобки уберите.
Ответ написан
@bizon2000
Java-программист
А если так?
SELECT *
    FROM (SELECT dbo.PN1.date, dbo.PN2.mp_tn3, dbo.PN2.price, dbo.PN2.id
              FROM dbo.PN1 INNER JOIN dbo.PN2 ON dbo.PN1.id = dbo.PN2.mp_pn1
              WHERE (dbo.PN2.mp_tn3 = 31457)
          UNION
          SELECT dbo.NO1.date, dbo.NO2.mp_tn3, dbo.NO2.price, dbo.NO2.id
              FROM dbo.NO1 INNER JOIN dbo.NO2 ON dbo.NO1.id = dbo.NO2.mp_no1
              WHERE (dbo.NO2.mp_tn3 = 31457)
         ) t 
    ORDER BY 1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы