Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / View на основе Union / 5 сообщений из 5, страница 1 из 1
25.09.2014, 13:21:08
    #38757416
KSVSVK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View на основе Union
Есть набор пайщиков, периодически получающих доход.
Требуется получить представление (View), в котором шли бы в хронологическом порядке доходы каждого пайщика с общей суммой в конце. Пытаюсь делать так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create view dohod_investor(Investor, Data, Delta) as
 (select Investor, Data, Delta from investors
  where Trider = true
  order by Data)
  union
 (select Investor, null, sum(Delta) from investors
  where Trider = true
  group by Investor)
  order by Investor;



В результате получаю:

mysql> select * from dohod_investor;
+----------+------------+-------+
| Investor | Data | Delta |
+----------+------------+-------+
| 1 | NULL | 80.00 |
| 1 | 2014-09-25 | 80.00 |
| 2 | NULL | 40.00 |
| 2 | 2014-09-25 | 40.00 |
+----------+------------+-------+
4 rows in set (0.00 sec)

т.е. суммы оказываются выше раскладки по датам.

Как это исправить?
...
Рейтинг: 0 / 0
25.09.2014, 13:29:34
    #38757429
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View на основе Union
KSVSVKт.е. суммы оказываются выше раскладки по датам.

Как это исправить?добавлять ещё одно поле, у обычных дынных оно будет 0, у итогов - 1, ну и сортировать по нему (после прочих)


кстати, юнион и юнион алл - разные вещи, вам точно первый нужен?

и вообще у групбая есть WITH ROLLUP - посмотрите, может, и огород с юнионом не надо городить...
...
Рейтинг: 0 / 0
26.09.2014, 04:33:41
    #38758317
KSVSVK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View на основе Union
Вот что мне требовалось:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create view dohod_investor(Investor, Data, Delta) as
 (select Investor, Data, Delta from investors
  where Trider = true)
  union all
 (select Investor, null, sum(Delta) from investors
  where Trider = true
  group by Investor)
  order by Investor, Data desc;



Вопрос снят.
...
Рейтинг: 0 / 0
26.09.2014, 09:23:46
    #38758404
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View на основе Union
tanglirи вообще у групбая есть WITH ROLLUP - посмотрите, может, и огород с юнионом не надо городить...

роллап прикольная штука, не знал про такую!!
...
Рейтинг: 0 / 0
26.09.2014, 12:18:04
    #38758670
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View на основе Union
Lumix,

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


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