![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 25.12.2013
Сообщений: 3
|
![]()
В sql server запрос выполняется, но в Access возникает ошибка
Как можно поменять синтаксис, понятный для Access? PHP код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте googlogmob.
Функция CONVERT как и оператор CROSS APPLY в SQL MS Access не используются. CONVERT можно заменить VBA функцией Format: ... Format(p.[Дата],"dd.mm.yy") as ... CROSS APPLY формирует декартово произведение, от него можно отказаться используя несвязанные таблицы в качестве источника. Не вникая в конструкцию заметно сразу, что её строка - ...where month(p.[Дата]) = '6'... построена не корректно, функция MONTH возвращает числовое значение и оно сравнивается с текстом ..= '6'.. Будьте внимательнее, успехов Вам. Евгений. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 25.12.2013
Сообщений: 3
|
![]()
Добрый вечер Евгений
Спасибо за развернутый ответ Про Format не знал, спасибо Подскажите пожалуйста, чем чревато использование такой конструкции: month(p.[Дата]) = '6'? Стоит указать по типу p.[Дата] between '20140601' and '20140630' ? Если можно, чуть детальней про использование несвязных таблиц в качестве источника Источник во вложении. Такая структура таблицы создана для определенных целей, поэтому хочу создать представление, чтобы преобразовать в применимую для анализа структуру Буду благодарен за помощь (советовали использовать множество union all, отдельно отбирая каждый вид) |
![]() |
![]() |
![]() |
#4 |
Регистрация: 25.12.2013
Сообщений: 3
|
![]()
Решено при помощи union all
насчет ошибочности использования такой конструкции: month(p.[Дата]) = '6' - отпишитесь пожалуйста |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте googlogmob.
"..насчет ошибочности.." я описывал "..числовое значение .. сравнивается с текстом ..= '6'..." если при использовании в конструкции SQL-сервера выражение ..6 = '6'.. - просто "нехороший тон" то для SQL MS Access это выражение неприемлемо вовсе, только так : ..6 = 6.. Так-же как и выражение ..between '20140601' and '20140630'.. (которое собственный View редактор SQL-сервера все-же приводит к корректно виду: .. BETWEEN CONVERT(DATETIME, '2014-06-01 00:00:00', 102) AND CONVERT(DATETIME, '2014-06-30 00:00:00', 102).. ) Для SQL MS Access конструкция обращения к дате может быть такой: ..Between #6/1/2014# And #6/30/2014#.. Евгений. P.S. Ваш образец посмотреть не могу, у меня есть только Офис 2003 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ACCESS как правильно построить запрос и передать его в datagridview (C#) | Lustin_Aleks | Помощь студентам | 8 | 26.11.2013 13:18 |
как связать запрос access и форма delphi? | Gulnur10 | БД в Delphi | 1 | 08.05.2013 23:13 |
Не понятный глюк | Gudzik11 | Работа с сетью в Delphi | 2 | 26.06.2012 23:30 |
Запрос с датами и временем к Access [D7, Access] | alexandr2010 | БД в Delphi | 3 | 26.07.2010 22:19 |
Как правильно создать запрос по поиску в базе Access? | Dux | SQL, базы данных | 2 | 03.05.2009 13:37 |