Member 14854850 Ответов: 2

SQL-ошибка - неправильный синтаксис около ключевого слова


SELECT p.LastName, p.FirstName, p.Phone , pr.ProcDescription
FROM Patient p , Visit v , Visit_proc vp, [PROCEDURE] pr
WHERE p.MedicalRecNum = v.MedicalRecNum AND vp.VisitID = v.VisitID AND pr.ProcID = vp.ProcID 
AND pr.ProcDescription LIKE '%tomy'
ORDER BY pr.ProcDescription ASC, p.LastName ASC, p.FirstName DESC;


Msg 156, Level 15, State 1, Line 95
Incorrect syntax near the keyword 'AND'.


Что я уже пробовал:

Я новичок в этом деле и не знаю, что попробовать.

Maciej Los

Почему вы используете оператор WHERE для объединения таблиц? Это очень старая техника. Вам нужно использовать Присоединяется[^]!

User-12551084

вы можете использовать join вместо этого
Где p.MedicalRecNum = v. MedicalRecNum и vp.VisitID = v. VisitID и pr.ProcID = vp.ProcID

2 Ответов

Рейтинг:
0

OriginalGriff

Помимо соединений, которые вы должны использовать, как уже упоминал Мацей, вам нужно посмотреть на остальную часть вашего SQL - кода-сообщение об ошибке специально указывает вам на "строку 95", а во всем этом фрагменте их всего пять. Вполне вероятно, что вы предполагаете, где ошибка находится неправильно!


Рейтинг:
0

MadMyche

Попробуйте эту переписку, основанную на соединениях, и посмотрите, не повторится ли ошибка

SELECT p.LastName, p.FirstName, p.Phone , pr.ProcDescription

FROM   Patient          p
INNER JOIN Visit        v ON p.MedicalRecNum = v.MedicalRecNum 
INNER JOIN Visit_proc  vp ON v.VisitID       = vp.VisitID
INNER JOIN [PROCEDURE] pr ON vp.ProcID       = pr.ProcID

WHERE    pr.ProcDescription LIKE '%tomy'
ORDER BY pr.ProcDescription ASC, p.LastName ASC, p.FirstName DESC;