Лысёк
Дата: 01.02.2016 13:17:22
Здравствуйте, прошу помощи разобраться с запросом, где ошибка?
Требуется, чтобы запрос изменил запись в поле [Вид амбулаторной помощи] таблицы [Пациенты] на "Консультативно-лечебная помощь" у пациента, у которого значение поля [Фамилия, имя, отчество_] в таблице [Форма работы с учетными] совпадает со значением поля [Фамилия, имя, отчество] в таблице [Пациенты]. Поле [№] - ключевое поле в таблице [Пациенты].
UPDATE Пациенты SET [Вид амбулаторной помощи] = 'Консультативно-лечебная помощь'
WHERE EXISTS
([Фамилия, имя, отчество] = (SELECT [Форма работы с учетными].[Фамилия, имя, отчество_],[Пациенты].[Фамилия, имя, отчество]
FROM [Форма работы с учетными],[Пациенты]
WHERE [Фамилия, имя, отчество_] =[№]));
Выдает ошибку синтаксиса в выражении EXISTS
ПЕНСИОНЕРКА
Дата: 01.02.2016 13:23:37
Лысёк,
не видя базы, меня больше всего смущает строка
WHERE [Фамилия, имя, отчество_] =[№]));
все ли корректно с типами данных, сколько записей возвращает подзапрос
Akina
Дата: 01.02.2016 13:27:41
Лысёк, операндом EXISTS должен быть запрос. А не дикое сравнение скалярной величины с набором записей запроса, к тому же возвращающего записи с двумя полями.
Лысёк
Дата: 01.02.2016 13:30:22
ПЕНСИОНЕРКА, с типами данных все нормально, т.к. другой аналогичный 2-табличный запрос без EXISTS с такой строкой работает. Не понял суть вопроса "сколько записей возвращает подзапрос". Если убрать строку "[Фамилия, имя, отчество]=", то инструкция UPDATE применяется ко всем записям в таблице.
__Michelle
Дата: 01.02.2016 13:37:27
Лысёк |
---|
Здравствуйте, прошу помощи разобраться с запросом, где ошибка?
Требуется, чтобы запрос изменил запись в поле [Вид амбулаторной помощи] таблицы [Пациенты] на "Консультативно-лечебная помощь" у пациента, у которого значение поля [Фамилия, имя, отчество_] в таблице [Форма работы с учетными] совпадает со значением поля [Фамилия, имя, отчество] в таблице [Пациенты]. Поле [№] - ключевое поле в таблице [Пациенты].
UPDATE Пациенты SET [Вид амбулаторной помощи] = 'Консультативно-лечебная помощь' WHERE EXISTS ([Фамилия, имя, отчество] = (SELECT [Форма работы с учетными].[Фамилия, имя, отчество_],[Пациенты].[Фамилия, имя, отчество] FROM [Форма работы с учетными],[Пациенты] WHERE [Фамилия, имя, отчество_] =[№]));
Выдает ошибку синтаксиса в выражении EXISTS |
UPDATE Пациенты
INNER JOIN [Форма работы с учетными]
ON Пациенты.[Фамилия, имя, отчество] = [Форма работы с учетными].[Фамилия, имя, отчество_]
SET Пациенты.[Вид амбулаторной помощи] = 'Консультативно-лечебная помощь'
Просьба: пользуйтесь средствами оформления кода.
Лысёк
Дата: 01.02.2016 13:47:16
__Michelle,
спасибо за помощь, но значение в таблице [Пациенты] не меняется на "Консультативно-лечебная помощь".
__Michelle
Дата: 01.02.2016 13:55:27
Лысёк |
---|
__Michelle,
спасибо за помощь, но значение в таблице [Пациенты] не меняется на "Консультативно-лечебная помощь". |
Выполните запрос
SELECT *
FROM Пациенты INNER JOIN [Форма работы с учетными]
ON Пациенты.[Фамилия, имя, отчество] = [Форма работы с учетными].[Фамилия, имя, отчество_]
Каков результат? Есть записи, отвечающие этому условию?
Лысёк
Дата: 01.02.2016 14:04:58
Выполните запрос
SELECT *
FROM Пациенты INNER JOIN [Форма работы с учетными]
ON Пациенты.[Фамилия, имя, отчество] = [Форма работы с учетными].[Фамилия, имя, отчество_]
Каков результат? Есть записи, отвечающие этому условию?[/quot]
Сообщает, что несоответствие типов данных. В таблице [Форма работы с учетными] числовой, в [Пациентах] текст. Меняю числовой в [Форме работы с учетными], запрос выполняется, но выводит пустую таблицу.
__Michelle
Дата: 01.02.2016 14:15:26
Лысёк |
---|
В таблице [Форма работы с учетными] числовой, в [Пациентах] текст. |
Для [Фамилия, имя, отчество_] и [Фамилия, имя, отчество]?
Интересно....)))
Вы хоть вручную посмотрите, что за значения в полях этих таблиц, увязываются ли они между собой.
P.S.
Можно еще много чего сказать на эту тему, но, видимо, не время...