|
Перенос запроса с MySQL на Firebird 2.0
|
|||
---|---|---|---|
#18+
Здравствуйте. Я не специалист по БД. Мой уровень это простые запросы. Появилась задача получить некоторую статистику из старой CRM ранее использовавшейся в компании(сейчас переходим на новую и конечно экономим на профильных специалистах). Сначала я делал бекап данных из Firebird в mysql и работал с ней, так оказалось не удобно. Решил работать напрямую с Firebird, но пришлось поправить запрос, что у меня не вышло. Прошу вашей помощи. Таблица History - это заметки. авторNOTE - Текст комментария (VARCHAR) DATECR - Дата создания комментария (DATE) IDCREATOR - ID создателя (INTEGER) HISTTYPE - тип заметки (INTEGER) Таблица Users- пользователи авторIDUSER - id юзера (INTEGER) NAME - ФИО юзера (VARCHAR) Таблица Customer - компании авторIDCUST - id компании IDUSER - id пользователя кто создал DATECR - дата создания Задача, получить статистику по пользователям: авторКоличество созданных компаний. Количество созданных заметок с TYPE 1 Количество созданных заметок с TYPE 2 Количество созданных заметок с TYPE 3 Запрос MySql: авторSELECT users.name, company_stat.company_count, comment_stat.type1, comment_stat.type2, comment_stat.type3 FROM users LEFT JOIN ( SELECT iduser, COUNT(idcust) company_count FROM customer GROUP BY iduser ) AS company_stat ON users.iduser = company_stat.iduser LEFT JOIN ( SELECT idcreator, SUM(type=1) type1, SUM(type=2) type2, SUM(type=3) type3 FROM history GROUP BY idcreator ) AS comment_stat ON users.iduser = comment_stat.idcreator Проверяю через IBExpert, ошибка при выполнении запроса: "Error Message: ---------------------------------------- There is no Table for join" C Уважением, Waik/ ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 08:27 |
|
Перенос запроса с MySQL на Firebird 2.0
|
|||
---|---|---|---|
#18+
Waik, ты точно уверен что у тебя Firebird 2.0, а не 1.5. 1.5 не поддерживал производные таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 11:29 |
|
Перенос запроса с MySQL на Firebird 2.0
|
|||
---|---|---|---|
#18+
Во-первых, это ошибка выдаётся IBExpert, которому установили неправильную версию парсера. Во-вторых, в SUM(type=1) придётся использовать CASE, поскольку даже тройка вроде как не позволяет суммировать булевские значения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 12:39 |
|
Перенос запроса с MySQL на Firebird 2.0
|
|||
---|---|---|---|
#18+
авторты точно уверен что у тебя Firebird 2.0 Уверен. авторВо-первых, это ошибка выдаётся IBExpert, которому установили неправильную версию парсера. Во-вторых, в SUM(type=1) придётся использовать CASE, поскольку даже тройка вроде как не позволяет суммировать булевские значения. Исправил на CASE и вы оказались совершенно правый! Это была ошибка парсера IBExpert, подключился через adodb и запрос выполнился как положено. Я потратил на это три дня т.к тестировал исключительно через IBExpert. Большое спасибо!! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 13:16 |
|
Перенос запроса с MySQL на Firebird 2.0
|
|||
---|---|---|---|
#18+
Waik, ну про неправильно выставленную версию Firebird в регистрационной информации IB Expert ты конечно же всё проигнорировал ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 13:47 |
|
|
start [/forum/topic.php?fid=40&fpage=22&tid=1560645]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 289ms |
total: | 443ms |
0 / 0 |