Re: Вопрос про UNION

From
Grigoriy Shpakov (2:5020/400)
To
"Gribkov M.N."
Date
2006-03-14T17:23:06Z
Area
SU.DBMS.SQL
From: Grigoriy Shpakov <grigory@sirena2000.ru>

Как-то раз Gribkov M.N.(gribkov@ramon.vsi.ru) написал:

GMN> Коллеги!

GMN> Есть две одинаковые по структуре таблицы.

GMN> Как объединить две выбрки из этих таблиц и применить к
GMN> ним GROUP BY и посчитать суммы по какому либо столбцу?

GMN> То есть:

GMN> Моя обычная выборка вглядит так:
.....
GMN> Результат: вычисления с группировкой по AbonentA

GMN> Теперь нужно: сделать два запроса к разным таблицам, а в результате
GMN> получить вычисления по ним обеим с группировкой по AbonentA.
GMN> Как это проще сделать?

   Что-нибудь типа такого:

   SELECT список полей FROM (
     SELECT список полей FROM первая таблица WHERE ... 
     UNION ALL
     SELECT список полей FROM вторая таблица WHERE ...
   ) GROUP BY что тебе там нужно

   За абсолютность результата не уверен. Но в Oracle такое работает.
-- 
Григорий Шпаков
Бывший 2:5020/198.39 AKA /213.25 AKA /54.35 AKA grigory@sirena.rinet.ru
Ныне grigory@sirena2000.ru

Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
 * Origin: Talk.Mail.Ru (2:5020/400)
SEEN-BY: 46/50 50/12 203 520 450/159 186 1024 451/30 454/9 461/43 132 640
SEEN-BY: 469/999 4614/20 4616/3 4625/8 4627/10 4641/444 5000/76 5000 5001/5001
SEEN-BY: 5006/1 5007/1 5010/53 70 5011/13 5012/23 46 5015/28 5019/31 5020/86
SEEN-BY: 5020/175 194 400 545 604 639 715 758 830 892 982 1042 1057 1200 1523
SEEN-BY: 5020/1604 1665 1909 1922 2013 2020 2238 4441 5021/3 29 5022/128
SEEN-BY: 5025/3 750 5026/10 14 45 5027/12 5029/32 5030/115 217 436 473 556 966
SEEN-BY: 5030/1063 1339 1900 5034/13 5035/38 5036/1 5040/47 5042/13 5045/7
SEEN-BY: 5047/47 5049/1 5051/15 5053/16 5054/1 8 9 28 35 37 45 63 67 5055/95
SEEN-BY: 5057/1 5059/9 5060/88 5061/15 5062/1 5066/18 5070/1222 5077/70
SEEN-BY: 5080/68 1003 5081/2 5082/6 5083/21 5084/32 5085/13 5090/106 5093/27
SEEN-BY: 5095/20 5096/18 5099/133 6000/0 1 12 6009/1
PATH: 5020/400 4441 545 5054/1 37