Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировка данных из двух таблиц / 10 сообщений из 10, страница 1 из 1
29.05.2018, 13:42
    #39651761
Rulezzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Добрый день!
Есть две таблицы с одинаковыми полями (table1 и table2), надо вывести date_DT, PaySum и сгруппировать эти данные, чтобы видеть количество записей за день и сумму операций за день (sum(PaySum), Count(1))

Данные я вывел, но вот с группировкой проблемы.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select * from
(select date_dt, PaySum from table1
UNION
 select date_dt, PaySum from table2)
WHERE  
DATE_DT > TO_DATE('20.05.2018 00:00:00','dd.mm.yyyy hh24:mi:ss') 
AND 
DATE_DT < TO_DATE('30.05.2018 23:59:59','dd.mm.yyyy hh24:mi:ss')



p.s. Прошу сильно не ругать, в SQL не силен, только начинаю осваивать
...
Рейтинг: 0 / 0
29.05.2018, 14:04
    #39651784
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Ну так выбери
select date_dt, SUM(PaySum) from
и сгруппируй
GROUP BY date_dt
...
Рейтинг: 0 / 0
29.05.2018, 15:12
    #39651838
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Rulezzzp.s. Прошу сильно не ругать, в SQL не силен, только начинаю осваивать
вместо UNION используйте UNION ALL (разница существенна)

UNION без all токо по необходимости

.....
stax
...
Рейтинг: 0 / 0
29.05.2018, 16:05
    #39651889
Rulezzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Спасибо, получилось так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select to_char(date_dt,'yyyy.mm.dd'), count(1), sum(PaySum) from
(select date_dt, PaySum from table1
UNION ALL
 select date_dt, PaySum from table2)
WHERE  
DATE_DT > TO_DATE('20.05.2018 00:00:00','dd.mm.yyyy hh24:mi:ss') 
AND 
DATE_DT < TO_DATE('28.05.2018 23:59:59','dd.mm.yyyy hh24:mi:ss')
GROUP BY to_char(date_dt,'yyyy.mm.dd')
ORDER BY to_char(date_dt,'yyyy.mm.dd');
...
Рейтинг: 0 / 0
29.05.2018, 16:14
    #39651900
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Rulezzz,

а кто будет учитывать первую и последнюю секунду ?
...
Рейтинг: 0 / 0
29.05.2018, 16:33
    #39651917
Rulezzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Ну можно наверное так попробовать:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select to_char(date_dt,'yyyy.mm.dd'), count(1), sum(PaySum) from
(select date_dt, PaySum from table1
UNION ALL
 select date_dt, PaySum from table2)
WHERE  
DATE_DT > TO_DATE('20.05.2018','dd.mm.yyyy') 
AND 
DATE_DT < TO_DATE('29.05.2018','dd.mm.yyyy')
GROUP BY to_char(date_dt,'yyyy.mm.dd')
ORDER BY to_char(date_dt,'yyyy.mm.dd');
...
Рейтинг: 0 / 0
29.05.2018, 16:41
    #39651925
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
RulezzzНу можно наверное так попробовать:
[/src]
123-й намекает что вместо >,< использовать >=, <=


ps
order by и group by я б рисовал c trunc(date_dt)
.....
stax
...
Рейтинг: 0 / 0
29.05.2018, 16:45
    #39651929
Rulezzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
у меня почему то при использование DATE_DT <= TO_DATE('28.05.2018','dd.mm.yyyy')
за 28 число данных не выводится, приходиться писать DATE_DT < TO_DATE('29.05.2018','dd.mm.yyyy')
...
Рейтинг: 0 / 0
29.05.2018, 16:57
    #39651940
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Пророческий date это timestamp(0), форматируемый до дня при выводе.
Соответственно, возникают проблемы с приложениями, которые сохраняют даты, не усекая время.
...
Рейтинг: 0 / 0
29.05.2018, 17:22
    #39651959
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка данных из двух таблиц
Rulezzzу меня почему то при использование DATE_DT <= TO_DATE('28.05.2018','dd.mm.yyyy')
за 28 число данных не выводится, приходиться писать DATE_DT < TO_DATE('29.05.2018','dd.mm.yyyy')

автор
Код: plsql
1.
DATE_DT <= TO_DATE('28.05.2018 23:59:59','dd.mm.yyyy hh24:mi:ss')



ps
по умолчанию время 00:00:00

.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Группировка данных из двух таблиц / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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