Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2014, 21:24   #1
googlogmob
 
Регистрация: 25.12.2013
Сообщений: 3
По умолчанию Как преобразовать в понятный Access'у запрос

В sql server запрос выполняется, но в Access возникает ошибка
Как можно поменять синтаксис, понятный для Access?

PHP код:
SELECT convert(nvarchar(10),p.[Дата],(104))as Датаp.[id_ЦП], t.[Сумма] as [Платежигрн],t.[Количество], t.[Вид]
FROM [Платежи]  p
CROSS APPLY 
(
    
VALUES 
          
([НВгрн],[НВшт],НВ)
        , ([
Подорожгрн],[Подорожшт], [Подорож])
       
        
t([Сумма],[Количество], [Вид])
where month(p.[Дата]) = '6' 
googlogmob вне форума Ответить с цитированием
Старый 20.06.2014, 23:06   #2
Teslenko_EA
Участник клуба
 
Регистрация: 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'..

Будьте внимательнее, успехов Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 21.06.2014, 00:53   #3
googlogmob
 
Регистрация: 25.12.2013
Сообщений: 3
По умолчанию

Добрый вечер Евгений
Спасибо за развернутый ответ
Про Format не знал, спасибо

Подскажите пожалуйста, чем чревато использование такой конструкции: month(p.[Дата]) = '6'? Стоит указать по типу p.[Дата] between '20140601' and '20140630' ?
Если можно, чуть детальней про использование несвязных таблиц в качестве источника

Источник во вложении. Такая структура таблицы создана для определенных целей, поэтому хочу создать представление, чтобы преобразовать в применимую для анализа структуру
Буду благодарен за помощь

(советовали использовать множество union all, отдельно отбирая каждый вид)
Вложения
Тип файла: rar _report.rar (43.7 Кб, 15 просмотров)
googlogmob вне форума Ответить с цитированием
Старый 21.06.2014, 01:57   #4
googlogmob
 
Регистрация: 25.12.2013
Сообщений: 3
По умолчанию

Решено при помощи union all
насчет ошибочности использования такой конструкции: month(p.[Дата]) = '6' - отпишитесь пожалуйста
googlogmob вне форума Ответить с цитированием
Старый 22.06.2014, 00:30   #5
Teslenko_EA
Участник клуба
 
Регистрация: 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
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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