powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / нужна помощь в составлении запроса
23 сообщений из 23, страница 1 из 1
нужна помощь в составлении запроса
    #38536777
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день. помогите, пожалуйста, не соображу, как построить запрос.

Имеется таблица Table:



В результирующем запросе должно быть 6 колонок и 6 записей

первые 3 колонки берутся из исходной таблицы с direction = 1, вторые 3 колонки - с Direction = 2. Причем в одной строке могут быть заполнены все колонки + все должно быть сгруппировано по полю Adate. В недостающих ячейках нужно проставить null.

В итоге вот что должно получиться:



Чего удалось добиться, но это не совсем то:

Код: sql
1.
2.
3.
4.
5.
6.
 select * from
    (select * from table1 t
     where t.direction = 1) a full join
    (select * from table1 t
     where t.direction = 2) b
   on a.adate = b.adate





или

Код: sql
1.
2.
3.
4.
select distinct( t1.adate ), t2.acount a2, t2.direction d2, t3.acount a3, t3.direction d3
from table1 t1
left join table1 t2 on t2.direction = 1 and t2.adate = t1.adate
left join table1 t3 on t3.direction = 2 and t3.adate = t1.adate



результат тот же
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536791
pivot тебе нужен. попробуй сэмулировать его на CASE + gropu by
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536800
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

странное у вас что-то. Соединение по датам?

full join или left join + union
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536828
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смысл такой. Группируем по дате. Берем первое число даты. Смотрим, есть ли по данной дате строки с direction = 1, Добавляем эти строки в первые 3 столбца. Потом смотрим по этой дате строки с direction = 2. Если есть - добавляем их в последние 3 столбца результирующей таблицы. Где остаются недостающие ячейки в первых трех столюцах или вторых трех - проставляем null. Далее берем следующее число даты и т.д.. Реализовать с временной таблицей просто, но хотелось бы ограничиться запросом.
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536835
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

вы тут не группируете
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536844
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисJohnnyyy,

вы тут не группируете

Я понимаю) Выше я просто словесно описал то, как должна быть построена результирующая таблица.
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536854
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with table2 as (
    select adate,
             acount,
             direction
    from table1
    where direction = 1
),
table3 as (
    select adate,
             acount,
             direction
    from table1
    where direction = 2
)
select * 
from table2 full join table3 on table2.adata = table3.adata
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536866
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисJohnnyyy,

Код: sql
1.
with table2 as (



В первом моем сообщении есть этот запрос с результатом - немного не то
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536878
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

ответь для чего это нужно
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536903
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JohnnyyyСимонов ДенисJohnnyyy,

Код: sql
1.
with table2 as (



В первом моем сообщении есть этот запрос с результатом - немного не то

Да, результат совсем не тот, если добавить еще одну строку
ADATE ACOUNT DIRECTION
02.01.2013 17 2

то получается хрень:


Симонов ДенисJohnnyyy,
ответь для чего это нужно

Это уже другой вопрос. Алгоритм я привел выше - меня интересовало можно или нет по такому алгоритму выбрать данные и вывести такой результат.
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536924
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

вы хотите что-то уж очень кривое. Поэтому я и спросил зачем. И я так до сих пор и не понял по каким критериям у вас там должно соединение проводится. Покажите что как вы считаете должно получится если добавить ещё одну строчку 02.01.2013 17 2.
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536935
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисJohnnyyy,

вы хотите что-то уж очень кривое. Поэтому я и спросил зачем. И я так до сих пор и не понял по каким критериям у вас там должно соединение проводится. Покажите что как вы считаете должно получится если добавить ещё одну строчку 02.01.2013 17 2.

...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536941
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем то, из последнего скриншота взять только последнюю строку, предпоследние взять из самого первого скриина
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536951
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запутал вас, вот что должно быть в результате добавления строки 02.01.2013 17 2

...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536953
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

так и не понял чего вы там хотите. Ваша логика соединения не ясна. Вам поможет либо PSQL блок либо FB3 с оконными функциями.
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536973
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисJohnnyyy,

так и не понял чего вы там хотите. Ваша логика соединения не ясна. Вам поможет либо PSQL блок либо FB3 с оконными функциями.


упрощенный вариант, как получить таблицу result?

...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536984
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой критерий сортировки? джойн по дате что ли?
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536988
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

порядок записей не имеет никакого значения?
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536991
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Ivan_Pisarevsky!
You wrote on 24 января 2014 г. 15:07:44:

Ivan_Pisarevsky> Какой критерий сортировки? джойн по дате что ли?
нет там никаких внятных критериев.
автор пытается сделать "чтоб было красиво".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536992
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskyКакой критерий сортировки? джойн по дате что ли?

Об этом нужно догадаться, так как дано: алгоритм + исходные данные + то, что должно получиться
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536995
Johnnyyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pastorJohnnyyy,

порядок записей не имеет никакого значения?

порядок не имеет значения, так как внутри остается только сортировать по acount - но это не нужно.
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38536998
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnnyyy,

кто вам такой алгоритм дал? Невменяемый препод?
...
Рейтинг: 0 / 0
нужна помощь в составлении запроса
    #38537559
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnnyyyОб этом нужно догадатьсяУ нас не соревнование бабок-гадалок. закрыто.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / нужна помощь в составлении запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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