Добрый день! Таблица1 содержит поля СЧ, X, Y Таблица2 содержит поля XY, код Таблицы между собой не связаны, XY=объединение двух полей X и Y Как сделать запрос который в результате выведет поля СЧ, X, Y, код С условием что если при объединении полей X и Y из таблицы 1 не найдено соответствия XY таблицы 2, то код=пусто Помогите пожалуйста, не представляю с какой стороны подойти к решению этой задачи
Добрый день! Таблица1 содержит поля СЧ, X, Y Таблица2 содержит поля XY, код Таблицы между собой не связаны, XY=объединение двух полей X и Y Как сделать запрос который в результате выведет поля СЧ, X, Y, код С условием что если при объединении полей X и Y из таблицы 1 не найдено соответствия XY таблицы 2, то код=пусто Помогите пожалуйста, не представляю с какой стороны подойти к решению этой задачиvole1977
, тогда при такой конфигурации Left Join будут отображены все значения Таблицы1: СЧ, X, Y и только те значения код Таблицы2, для которых верно условие соединения Таблица1.X & Таблица1.Y = Таблица2.XY Если такого совпадения не будет (не найдено соответствие), то код будет Null.
код будет не пусто, а его просто не будет, ведь так?
А в чём разница между терминами 1. не пусто 2. не будет Исходных таблиц мы не видим. Что подразумевает ТС под пусто? Для меня Null левого соединения (ещё раз повторю ТС - не найдено соответствие). Ячейки вон в Excel некоторые клетками обзывают Если же поменять таблицы местами, то будут выведены все код и только те СЧ, X, Y, которые совпадают по условию (а не все, как подразумевает ТС).
, тогда при такой конфигурации Left Join будут отображены все значения Таблицы1: СЧ, X, Y и только те значения код Таблицы2, для которых верно условие соединения Таблица1.X & Таблица1.Y = Таблица2.XY Если такого совпадения не будет (не найдено соответствие), то код будет Null.
код будет не пусто, а его просто не будет, ведь так?
А в чём разница между терминами 1. не пусто 2. не будет Исходных таблиц мы не видим. Что подразумевает ТС под пусто? Для меня Null левого соединения (ещё раз повторю ТС - не найдено соответствие). Ячейки вон в Excel некоторые клетками обзывают Если же поменять таблицы местами, то будут выведены все код и только те СЧ, X, Y, которые совпадают по условию (а не все, как подразумевает ТС).anvg
Сообщение отредактировал anvg - Четверг, 19.01.2017, 14:05
anvg, с перестановкой таблиц я точно напутал... но чтобы хоть как-то реабилитироваться, по второму вопросу о пусто и null я могу сказать, что я имел в виду. [vba]
Код
Nz(Null, 0)
[/vba]
anvg, с перестановкой таблиц я точно напутал... но чтобы хоть как-то реабилитироваться, по второму вопросу о пусто и null я могу сказать, что я имел в виду. [vba]
anvg, Спасибо Огромное! реализовал немножко по другому в таблице 2 были еще поля: XY, X, Y, код, установил 2 связи между таблицей 1 и таблицей 2 по полям X, Y запрос создался автоматом, все работает Извините, таблиц выложить не могу, они содержат кучу полей и БД со статусом "секретно"
anvg, Спасибо Огромное! реализовал немножко по другому в таблице 2 были еще поля: XY, X, Y, код, установил 2 связи между таблицей 1 и таблицей 2 по полям X, Y запрос создался автоматом, все работает Извините, таблиц выложить не могу, они содержат кучу полей и БД со статусом "секретно"vole1977
anvg, Добрый вечер! решил внедрить конструкцию с [vba]
Код
Select СЧ, X, Y, код From Таблица1 Left Join Таблица2 On (X & Y = XY)
[/vba]
запрос написал, но есть 2 проблемы 1) при переходе в запросе с режима SQL в режим конструктора возникает ошибка " Приложению Microsoft Access не удается представить выражение объединения..." 2) при выполненном запросе в режиме таблицы не дает редактировать поля X, Y
может есть какой-то другой вариант написания запроса. изменения в условии: Таблица1 содержит поля СЧ, X, Y Таблица2 содержит поля XY, X, Y, код поля X, Y двух таблиц аналогичные XY=объединение двух полей X и Y пример во воложении Помогите пожалуйста
anvg, Добрый вечер! решил внедрить конструкцию с [vba]
Код
Select СЧ, X, Y, код From Таблица1 Left Join Таблица2 On (X & Y = XY)
[/vba]
запрос написал, но есть 2 проблемы 1) при переходе в запросе с режима SQL в режим конструктора возникает ошибка " Приложению Microsoft Access не удается представить выражение объединения..." 2) при выполненном запросе в режиме таблицы не дает редактировать поля X, Y
может есть какой-то другой вариант написания запроса. изменения в условии: Таблица1 содержит поля СЧ, X, Y Таблица2 содержит поля XY, X, Y, код поля X, Y двух таблиц аналогичные XY=объединение двух полей X и Y пример во воложении Помогите пожалуйстаvole1977
ошибка " Приложению Microsoft Access не удается представить выражение объединения..."
условие соединения не стандартное (X & Y = XY), вот по этому и ругается. Учитывая структуру таблиц, не совсем понятно для чего было нужно такое условие? Чем не устраивало стандартное вполне себе открываемое в конструкторе? [vba]
Код
SELECT [УЧЕТНАЯ КАРТОЧКА].СЧ, [УЧЕТНАЯ КАРТОЧКА].ВУС, [УЧЕТНАЯ КАРТОЧКА].КОД, [УЧЕТНАЯ КАРТОЧКА].[Код ОПС], БД_ПАРА_025.ФЗБЗ FROM [УЧЕТНАЯ КАРТОЧКА] LEFT JOIN БД_ПАРА_025 ON ([УЧЕТНАЯ КАРТОЧКА].КОД = БД_ПАРА_025.КОД) AND ([УЧЕТНАЯ КАРТОЧКА].ВУС = БД_ПАРА_025.ВУС);
при выполненном запросе в режиме таблицы не дает редактировать поля X, Y
Естествено, так как запрос возвращает поля из разных таблиц, поэтому и нельзя редактировать. Да и стоит ли редактировать непосредственно в окне просмотра результата запроса? Для этого служат формы, а факультативно вы можете выводить БД_ПАРА_025.ФЗБЗ как результат запроса в отдельный элемент формы по данным текущей редактируемой записи таблицы [УЧЕТНАЯ КАРТОЧКА]
ошибка " Приложению Microsoft Access не удается представить выражение объединения..."
условие соединения не стандартное (X & Y = XY), вот по этому и ругается. Учитывая структуру таблиц, не совсем понятно для чего было нужно такое условие? Чем не устраивало стандартное вполне себе открываемое в конструкторе? [vba]
Код
SELECT [УЧЕТНАЯ КАРТОЧКА].СЧ, [УЧЕТНАЯ КАРТОЧКА].ВУС, [УЧЕТНАЯ КАРТОЧКА].КОД, [УЧЕТНАЯ КАРТОЧКА].[Код ОПС], БД_ПАРА_025.ФЗБЗ FROM [УЧЕТНАЯ КАРТОЧКА] LEFT JOIN БД_ПАРА_025 ON ([УЧЕТНАЯ КАРТОЧКА].КОД = БД_ПАРА_025.КОД) AND ([УЧЕТНАЯ КАРТОЧКА].ВУС = БД_ПАРА_025.ВУС);
при выполненном запросе в режиме таблицы не дает редактировать поля X, Y
Естествено, так как запрос возвращает поля из разных таблиц, поэтому и нельзя редактировать. Да и стоит ли редактировать непосредственно в окне просмотра результата запроса? Для этого служат формы, а факультативно вы можете выводить БД_ПАРА_025.ФЗБЗ как результат запроса в отдельный элемент формы по данным текущей редактируемой записи таблицы [УЧЕТНАЯ КАРТОЧКА]anvg
anvg, Добрый день! есть "официальная" БД которая написана еще под Access 97 и которая не удовлетворяет современным требованиям, и есть приблуда на Access2010 которая удаленно подключает некоторые таблицы БД + имеет свои таблицы и запросы. В официальную БД никакие изменения вносить нельзя, все запросы... пишутся только в приблуде. Приблуда используется только для того, чтобы вытащить необходимые данные в эксель и уже потом строить разные отчеты... Некоторые поля БД через официальный интерфейс менять очень неудобно, а порою невозможно, поэтому для таких случаев изменеия вносятся напрямую в БД. Стандартное решение работает, но теряется возможность редактирования, поэтому очень хочется найти другое решение вот такие дела...
anvg, Добрый день! есть "официальная" БД которая написана еще под Access 97 и которая не удовлетворяет современным требованиям, и есть приблуда на Access2010 которая удаленно подключает некоторые таблицы БД + имеет свои таблицы и запросы. В официальную БД никакие изменения вносить нельзя, все запросы... пишутся только в приблуде. Приблуда используется только для того, чтобы вытащить необходимые данные в эксель и уже потом строить разные отчеты... Некоторые поля БД через официальный интерфейс менять очень неудобно, а порою невозможно, поэтому для таких случаев изменеия вносятся напрямую в БД. Стандартное решение работает, но теряется возможность редактирования, поэтому очень хочется найти другое решение вот такие дела...vole1977
anvg, Добрый вечер! на данный момент запрос вытягивает из БД около 30 полей, данные которых берутся из разных таблиц БД. Правке могут подвергаться записи, которые удовлетворяют некоторым заданным условиям устанавливаемым фильтрами. Да, можно запустить на выполнение запрос, отфильтровать полученные данные, потом полезть в нужную таблицу, найти ту запись которую нужно поправить, поправить ее потом найти еще 100 таких записей по ключевому полю и промудохаться всю ночь или поправить уже отфильтрованные данные в запросе за 30 минут... вот собственно и все проблемы
anvg, Добрый вечер! на данный момент запрос вытягивает из БД около 30 полей, данные которых берутся из разных таблиц БД. Правке могут подвергаться записи, которые удовлетворяют некоторым заданным условиям устанавливаемым фильтрами. Да, можно запустить на выполнение запрос, отфильтровать полученные данные, потом полезть в нужную таблицу, найти ту запись которую нужно поправить, поправить ее потом найти еще 100 таких записей по ключевому полю и промудохаться всю ночь или поправить уже отфильтрованные данные в запросе за 30 минут... вот собственно и все проблемыvole1977