Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Переделать запрос с MSAccess в MySQL / 18 сообщений из 18, страница 1 из 1
26.09.2016, 20:31
    #39315912
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
пемогите переделать запрос с аксеса под мускул
Код: sql
1.
2.
3.
4.
parameters n long;
select cdate(avg(dat)) as dat_sr, avg(param) as param_sr
from t
group by fix(cdbl(t.dat)/cdbl(timeserial(0,0,n)))
...
Рейтинг: 0 / 0
26.09.2016, 22:05
    #39315934
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Penumbra,

Расшифровывайте, что делают все упомянутые функции кроме avg().
...
Рейтинг: 0 / 0
26.09.2016, 22:16
    #39315938
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Fix - отбрасывает дробную часть
cdate -функции преобразования типа, возрацает тип DATE
cdbl -функции преобразования типа, возращает тип Double
TimeSerial- Возвращает значение типа Variant (Date), выражающее время, определяемое по указанным значениям часов, минут и секунд - TimeSerial(часы, минуты, секунды)
...
Рейтинг: 0 / 0
26.09.2016, 23:38
    #39315954
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Если ориентироваться на смысл, а не идентичность, то
Код: sql
1.
2.
3.
SELECT CAST(AVG(dat) AS DATETIME) AS dat_sr, AVG(param) AS param_sr
FROM t
GROUP BY FLOOR(UNIX_TIMESTAMP(dat)/n)
...
Рейтинг: 0 / 0
26.09.2016, 23:39
    #39315955
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Penumbra,

И показывайте DDL таблицы.
PenumbraFix - отбрасывает дробную часть TRUNCATE() , FLOOR()
Penumbracdate -функции преобразования типа, возрацает тип DATEА что на входе?

PenumbraTimeSerial- Возвращает значение типа Variant (Date), выражающее время, определяемое по указанным значениям часов, минут и секунд - TimeSerial(часы, минуты, секунды) MAKETIME()
Правда непонятно, зачем эта функция в запрсе.
...
Рейтинг: 0 / 0
26.09.2016, 23:50
    #39315958
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
miksoftнепонятно, зачем эта функция в запрсе.
См. http://forum.sources.ru/index.php?showtopic=409605
...
Рейтинг: 0 / 0
26.09.2016, 23:56
    #39315959
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Akinamiksoftнепонятно, зачем эта функция в запрсе.
См. http://forum.sources.ru/index.php?showtopic=409605 Все равно не понял, зачем n преобразовывать во время, потом в дабл, а потом делить на него? Почему сразу просто не поделить?
...
Рейтинг: 0 / 0
27.09.2016, 19:44
    #39316527
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
CAST(AVG(dat) AS DATETIME) AS dat_sr - возвращает Null вместо даты
CONVERT(avg(dates) , DATETIME) AS dat_sr - тоже дает ошибку
avg(dates) AS dat_sr- возвращает 20160921114157,3 вместо даты 2016-09-21 11:14:15
...
Рейтинг: 0 / 0
27.09.2016, 19:47
    #39316529
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
решил через одно место

Код: sql
1.
FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(dates))) AS dat_sr
...
Рейтинг: 0 / 0
27.09.2016, 20:58
    #39316561
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
PenumbraCAST(AVG(dat) AS DATETIME) AS dat_sr - возвращает Null вместо даты
CONVERT(avg(dates) , DATETIME) AS dat_sr - тоже дает ошибку
avg(dates) AS dat_sr- возвращает 20160921114157,3 вместо даты 2016-09-21 11:14:15
А какой тип поля у dat?
...
Рейтинг: 0 / 0
28.09.2016, 16:22
    #39317104
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
AkinaPenumbraCAST(AVG(dat) AS DATETIME) AS dat_sr - возвращает Null вместо даты
CONVERT(avg(dates) , DATETIME) AS dat_sr - тоже дает ошибку
avg(dates) AS dat_sr- возвращает 20160921114157,3 вместо даты 2016-09-21 11:14:15
А какой тип поля у dat?
DATETIME
...
Рейтинг: 0 / 0
28.09.2016, 16:38
    #39317131
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Penumbra, что-то ты явно тщательно скрываешь:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
mysql> CREATE TABLE test(dat DATETIME);
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO test(dat)
    -> SELECT '2016-01-01 00:11:22' UNION ALL
    -> SELECT '2016-01-11 00:22:44' UNION ALL
    -> SELECT '2016-01-21 00:33:00' ;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT AVG(dat) FROM test;
+---------------------+
| AVG(dat)            |
+---------------------+
| 20160111002222.0000 |
+---------------------+
1 row in set (0.00 sec)

mysql> SELECT CAST(AVG(dat) AS DATETIME) FROM test;
+----------------------------+
| CAST(AVG(dat) AS DATETIME) |
+----------------------------+
| 2016-01-11 00:22:22        |
+----------------------------+
1 row in set (0.02 sec)
...
Рейтинг: 0 / 0
28.09.2016, 20:49
    #39317319
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
ну, черт, у меня так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
SELECT
  AVG(dates)  as dat, MAX(analog) AS param_sr
FROM
  mtpbd.ind_analog

=======================================================================================================
|                       dat                        |                     param_sr                     |
=======================================================================================================
|                20160921110 402,3                 |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                20160921110 406,8                 |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                20160921110 412,0                 |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                20160921110 417,3                 |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                20160921110 421,8                 |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                20160921110 427,0                 |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                20160921110 432,3                 |                        0,0                       |
-------------------------------------------------------------------------------------------------------

SELECT
  cAST(AVG(dates) AS DATETIME) as dat, MAX(analog) AS param_sr
FROM
  mtpbd.ind_analog
=======================================================================================================
|                       dat                        |                     param_sr                     |
=======================================================================================================
|                       null                       |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                       null                       |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                       null                       |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                       null                       |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                       null                       |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                       null                       |                        0,0                       |
-------------------------------------------------------------------------------------------------------
|                       null                       |                        0,0                       |
-------------------------------------------------------------------------------------------------------
...
Рейтинг: 0 / 0
28.09.2016, 20:52
    #39317323
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
таблица
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE MTPBD.ind_analog(
  id INT (11) NOT NULL AUTO_INCREMENT,
  dates DATETIME DEFAULT NULL,
  analog DOUBLE DEFAULT NULL,
  PRIMARY KEY (id),
  INDEX id USING BTREE (id),
)
ENGINE = MYISAM
AUTO_INCREMENT = 9125257
CHARACTER SET cp1251
COLLATE cp1251_general_ci
PACK_KEYS = 1;
...
Рейтинг: 0 / 0
29.09.2016, 00:08
    #39317375
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Penumbraну, черт, у меня так:
А если один в один те запросы, которые я показал?
...
Рейтинг: 0 / 0
29.09.2016, 09:03
    #39317468
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
AkinaPenumbraну, черт, у меня так:
А если один в один те запросы, которые я показал?
Код: sql
1.
2.
3.
4.
5.
====================================================
|            CAST(AVG(dat) AS DATETIME)            |
====================================================
|                       null                       |
----------------------------------------------------
...
Рейтинг: 0 / 0
29.09.2016, 09:13
    #39317478
Penumbra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT
  AVG(dat)
FROM
  test
====================================================
|                     AVG(dat)                     |
====================================================
|                20160111002 222,0                 |
----------------------------------------------------


есть подозрения на версию mysql, у меня 5.0.18-nt-max
...
Рейтинг: 0 / 0
29.09.2016, 11:06
    #39317623
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переделать запрос с MSAccess в MySQL
Penumbraесть подозрения на версию mysql, у меня 5.0.18-nt-maxИмхо, стоит обновиться. 10 лет уж прошло, с оригинального сайта даже документацию по этой версии вырезали.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Переделать запрос с MSAccess в MySQL / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]