powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Derived Table. Error: "Сolumn Unknown"
8 сообщений из 8, страница 1 из 1
Derived Table. Error: "Сolumn Unknown"
    #40121524
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
3 дня не могу оторватся от этой проблемы. Прошу помощи в решении следующей задачи:

Серверы: Interbase 2020, Firebird 3.
Таблицы:
T1: ID, f1(float)
T2: ID, f2(float)

Запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
select
    ID,
    sum(A) as A1,
    sum(B) as B1,
    sum(A-B) as razn
from
(
select
    ID,
    sum(f1) as A,
    cast(0 as float) as B
     from t1
       group by ID
union all
select
    ID,
    cast(0 as float),
    sum(f2) as B
     from t2
       group by ID) as dt1
group by ID



На FB запрос правильно работает, а на IB выводит ощибку:
авторError at line 1
Dynamic SQL Error
SQL error code = -206
Column unknown
A

Как будто все сделаю по документации на счет dreived tables. https://docwiki.embarcadero.com/InterBase/2020/en/SELECT#Derived_Tables_.28SELECT_FROM_SELECT.29

The following simple example shows how you can use derived tables:

Код: sql
1.
2.
3.
4.
5.
6.
SELECT elj.job_code,
       elj.job_title
FROM   ( SELECT job_code,
                job_title
         FROM   job
         WHERE  max_salary < 50000 ) AS elj;



или

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
The following is a more complex statement using derived tables:
SELECT emp.emp_no,
       emp.full_name,
       emp.job_code,
       job.job_grade,
       job.job_title
FROM   ( SELECT emp_no,
                full_name,
                job_code,
                job_grade,
                job_country
         FROM   employee ) AS emp,
       ( SELECT job_code,
                job_grade,
                job_country,
                job_title
         FROM   job ) AS job
WHERE  ( emp.job_code = job.job_code ) AND
       ( emp.job_grade = job.job_grade ) AND
       ( emp.job_country = job.job_country ) AND
       ( emp.job_country = 'USA' );
...
Рейтинг: 0 / 0
Derived Table. Error: "Сolumn Unknown"
    #40121526
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Derived Table. Error: "Сolumn Unknown"
    #40121528
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159,

Во 2-м селекте union поле A не определено. Как-то не тянет на 3 дня.
...
Рейтинг: 0 / 0
Derived Table. Error: "Сolumn Unknown"
    #40121530
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159,

У IB derived tables недоделанный.
И вообще я как-то не понимаю смысла искать какое-то "общее подмножество SQL" в именно последних версиях ИБ и ФБ. Они оба уже разошлись давно, и ФБ по возможностям SQL уехал сильно далеко от ИБ. Да, у ИБ тоже всякие свои фишки, но они скорее DDL - change views, tablespaces, и прочее. Но этого в ФБ вообще нет.
...
Рейтинг: 0 / 0
Derived Table. Error: "Сolumn Unknown"
    #40121538
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maestro Professional? Выкинь и забудь
...
Рейтинг: 0 / 0
Derived Table. Error: "Сolumn Unknown"
    #40121567
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159, какой-то, совершенно дурацкий запрос - есть ID, но нет соединения, а, в конечном счёте, имеем сумму всех f1 из таблицы t1 с группировкой по ID, всех f2 из таблицы t2 с такой же группировкой и в третьей результирующей колонке имеем сумму А + сумму B*(-1), также с группировкой по ID, потому что построчно будет A-0 и 0-B. Что-либо более бредовое сложно себе представить... Соединение, реализованное через UNION и агрегатную функцию. Почему нельзя было просто соединить JOIN'ом?
Кто это писал?
...
Рейтинг: 0 / 0
Derived Table. Error: "Сolumn Unknown"
    #40121700
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock
Delphi159,

Во 2-м селекте union поле A не определено.

Хоть определяй хоть нет Interbase все равно не работает.
...
Рейтинг: 0 / 0
Derived Table. Error: "Сolumn Unknown"
    #40121706
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev, вот финальный запрос и результат в FB
Код: 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.
select
    G.ID,
    G.NAME,
    dt2.A1 as INC,
    dt2.B1 as SALES,
    dt2.ostatok as RESTS
FROM Good g 
Join
 (select
    ID,
    sum(A) as A1 ,
    sum(B) as B1,
    sum(A-B) as ostatok
  from
      (select
         ID,
         sum(f1) as A,
         cast(0 as float)as B
          from t1
           group by ID
       union all
       select
         ID,
         cast(0 as float),
         sum(f2) as B
          from t2
           group by ID) as  dt1
   group by ID)as dt2
On G.ID=dt2.ID
Order by G.Name
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Derived Table. Error: "Сolumn Unknown"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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