|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.11.2012, 19:31 | #1 |
Регистрация: 09.12.2011
Сообщений: 9
|
запрос по дата/время
Здравствуйте. У меня есть база Access. Цепляюсь через ADO. В базе есть таблица с полем дата/время.Формат Дата/Время:"dd.mm.yyyy hh:mm:ss".
База пишется каждую минуту. Выполняется следующий sql запрос: DataModule1.ADOQuerySmena.SQL.Add(' Select DateValue([Дата/Время]) AS [Дата],Hour([Дата/Время]) AS [Время],Round(Avg(MVA_48_table.[Расп_кан,H]),2) AS [Р_кан,H], Round(AVG(MVA_48_table.[В-д 1,Q]),0) AS [В-д1,Q],' +'Round(AVG(MVA_48_table.[В-д 2,Q]),0) AS [В-д2,Q], Round(AVG(MVA_40_table.[Смес,H]),2) AS [Смес,H], Round(AVG(MVA_40_table.[Смес,Q]),0) AS [Смес,Q],' +'Round(AVG(MVA_24_table.[РОВ1,Q]),0) AS [РОВ1,Q], Round(AVG(MVA_24_table.[РОВ2,Q]),0) AS [РОВ2,Q], Round(AVG(MVA_24_table.[Ф1,Q]),0) AS [Ф1,Q], Round(AVG(MVA_32_table.[Ф1,H]),2) AS [Ф1,H], Round(AVG(MVA_24_table.[Ф2_Q]),0) AS [Ф2,Q],' +'Round(AVG(MVA_32_table.[Ф2,H]),2) AS [Ф2,H], Round(AVG(MVA_24_table.[Ф3_Q]),0) AS [Ф3,Q], Round(AVG(MVA_32_table.[Ф3,H]),2) AS [Ф3,H], Round(AVG(MVA_24_table.[Ф4,Q]),0) AS [Ф4,Q], Round(AVG(MVA_32_table.[Ф4,H]),2) AS [Ф4,H],' +'Round(AVG(MVA_24_table.[Ф5,Q]),0) AS [Ф5,Q],' +'Round(AVG(MVA_32_table.[Ф5,H]),2) AS [Ф5,H], Round(AVG(MVA_32_table.[Ф6,Q]),0) AS [Ф6,Q], Round(AVG(MVA_32_table.[Ф6,H]),2) AS [Ф6,H], Round(AVG(MVA_16_table.[ГЛ,P]),1) AS [ГЛ,P], Round(AVG(MVA_16_table.[ГЛ,Q]),0) AS [ГЛ,Q],' +'Round(AVG(MVA_16_table.[ГП,P]),1) AS [ГП,P], Round(AVG(MVA_16_table.[ГП,Q]),0) AS [ГП,Q], Round(AVG(MVA_16_table.[РЧВ1,H]),2) AS [РЧВ1,H], Round(AVG(MVA_16_table.[РЧВ2,H]),2) AS [РЧВ2,H], Round(AVG(MVA_24_table.[РЧВ3,H]),2) AS [РЧВ3,H],' +'Round(AVG(MVA_8_table.[БНС,P]),1) AS [БНС,P],' +'Round(AVG(MVA_8_table.[БНС,Q]),0) AS [БНС,Q], Round(AVG(MVA_8_table.[РМЗ,P]),1) AS [РМЗ,P], Round(AVG(MVA_8_table.[РМЗ,Q]),0) AS [РМЗ,Q], Round(AVG(MVA_8_table.[Коллект,P]),1) AS [Кол-т,P]' +'FROM (((((Mva_Main_Table INNER JOIN MVA_24_table ON (Mva_Main_Table.[ID] = MVA_24_table.[Link24] and MVA_24_table.[РЧВ3,H]<>"0" ))' +'INNER JOIN MVA_32_table ON Mva_Main_Table.[ID] = MVA_32_table.[Link32]) INNER JOIN MVA_40_table ON (Mva_Main_Table.[ID] = MVA_40_table.[Link40] and MVA_40_table.[Смес,Q]<>"0" and MVA_40_table.[Смес,H]<>"0"))' +'INNER JOIN MVA_48_table ON (Mva_Main_Table.[ID] = MVA_48_table.[Link48] and MVA_48_table.[В-д 1,Q]<>"0" and MVA_48_table.[В-д 2,Q]<>"0")) INNER JOIN MVA_8_table ON (Mva_Main_Table.[ID] = MVA_8_table.[Link8]' +' and MVA_8_table.[РМЗ,P]<>"0" and MVA_8_table.[РМЗ,Q]<>"0" and MVA_8_table.[Коллект,P]<>"0" and MVA_8_table.[БНС,P]<>"0")) INNER JOIN MVA_16_table ON (Mva_Main_Table.[ID] = MVA_16_table.[Link16]' +' and MVA_16_table.[ГЛ,Q]<>"0" and MVA_16_table.[ГЛ,P]<>"0" and MVA_16_table.[ГП,Q]<>"0" and MVA_16_table.[ГП,P]<>"0" and MVA_16_table.[РЧВ1,H]<>"0" and MVA_16_table.[РЧВ2,H]<>"0")' +'WHERE [Дата/Время]>='''+DBDateTimeEditEh1.Text+'''A ND [Дата/Время]<='''+DBDateTimeEditEh2.Text+'''GRO UP BY DateValue([Дата/Время]),Hour(Mva_Main_Table.[Дата/Время])'); Проблема в том, что когда делаешь запрос, например с 31.01.2012 20:00:00 по 01.02.2012 08:00:00 то запрос ничего не выводит. В чем моя ошибка? Заранее благодарю. Последний раз редактировалось jawist; 02.11.2012 в 19:38. |
02.11.2012, 19:35 | #2 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
а какой из форматов верный:
dd:mm:yyyy hh:mm:ss или 31.01.2012 ?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... |
02.11.2012, 19:39 | #3 |
Регистрация: 09.12.2011
Сообщений: 9
|
Извиняюсь, ошибся. Формат таков: 31.01.2012 20:00:00
|
02.11.2012, 19:44 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Лучше сделать параметризированный запрос и не мучаться с форматом даты-времени
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
02.11.2012, 19:47 | #5 |
Регистрация: 09.12.2011
Сообщений: 9
|
Да с форматом все нормально. Это я ошибся при написании сообщения. Просто в течении месяца выборка работает. А при переходе с месяца на месяц нет. Проблема вот в чем.
|
02.11.2012, 20:17 | #6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Значит данных нет раз не выводит.
И перекинте вы эту простынь в сам аксес, в виде запроса, будет и проще и быстрее. и т.д. |
02.11.2012, 20:19 | #7 |
Регистрация: 09.12.2011
Сообщений: 9
|
В аксесе аналогичная ситуация. Не выводит ничего.Пустой запрос. Я так понимаю запрос анализирует только дату в запросе, а месяц, год он не учитывает. Поэтому в течении месяца все нормально, а при переходе с месяца на месяц, с года на год запрос не работает. Я думаю в этом направлении нужно копать.
Последний раз редактировалось jawist; 02.11.2012 в 20:22. |
02.11.2012, 20:30 | #8 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Запросу пофик, он ваще не занимается анализом.
Что дали то и съел, дали нормально будет нормально дали ерунду - получили ерунду, и никакой мистики. |
02.11.2012, 20:32 | #9 |
Регистрация: 09.12.2011
Сообщений: 9
|
Тогда как быть? В чем я ошибаюсь?
|
02.11.2012, 20:37 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Попробуйте в самом ACCESS усложнить WHERE, выдернув, год, месяц , число и время из даты. Есть же наверно такие функции. Что-нибудь в таком духе
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
дата/время | Freek123 | C# (си шарп) | 2 | 27.10.2011 09:38 |
Время и дата | Rebelition | HTML и CSS | 4 | 17.08.2011 23:05 |
Дата и время | NEoMASTERR | Помощь студентам | 4 | 22.12.2010 16:16 |
Дата и время | Spaun | Помощь студентам | 1 | 14.06.2010 13:01 |