|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Maksim Kortunov 2:5020/400 18 Apr 2001 18:12:28 To : All Subject : Re: Volumes -> % -------------------------------------------------------------------------------- Могу для Oracl'a написать: SELECT ROUND (Volume / Cunt.Vol * 100) FROM (SELECT sum (Volume) Vol from VolumeMetro) Cunt , VolumeMetro Если нужна группировка, несложно будет ее прикрутить... "Vadym Lepetyuk" <lepetyuk@home.com> wrote in message news:KmSC6.32359$J%5.11509617@news2.rdc2.tx.home.com... > Привет, народ: > > Простая проблема, а как красиво решить, не знаю. :( > Есть таблица (страна, объем): > Russia, 20 > USA, 19 > Canada, 11 > А надо получить (страна, процент от суммарного объема): > Russia, 40% > USA, 38% > Canada, 22% > > Затычка, которая работает на данный момент (MS Jet 4.0): > SELECT CountryID, Volume/VolumeSum AS Percentage > FROM > ( SELECT MetroID, CountryID, Volume > FROM VolumeMetro WHERE (MetroID=?) > ) As QueryVolume > LEFT JOIN > ( SELECT MetroID, Sum(Volume) AS VolumeSum > FROM > ( SELECT MetroID, CountryID, Volume > FROM VolumeMetro WHERE (MetroID=?) > ) > GROUP BY MetroID > ) As QuerySum > ON QueryVolume.MetroID=QuerySum.MetroID > > Или лучше, то что работает, не трогать? :) > > Вадим > --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/6577efed8522.html, оценка из 5, голосов 10
|