|  | 
| 
Перенос запроса с 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&gotonew=1&tid=1560645]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 70ms | 
| get topic data: | 9ms | 
| get first new msg: | 40ms | 
| get forum data: | 3ms | 
| get page messages: | 40ms | 
| get tp. blocked users: | 1ms | 
| others: | 287ms | 
| total: | 478ms | 

| 0 / 0 | 
