Keywords: Re: sql query
- From
- Бойко Вадим ()
- To
- Andrei Romazanov ()
- Date
- 2002-07-12T12:37:30Z
- Area
- RU.DBMS.ORACLE
From: "Бойко Вадим" <vadim@profit.iks.ru>
Спасибо огромное, спасли и дали много понять.
Ниже вариант который по-моему наиболее интуитивнее
понятен и работает на ура (база клиентов ~100 000,
остатки ~ 3 000 000 записей за 1.78 сек).
А я наваял что-то несуразное с результатом через час.
Вадим.
>Это один из многих вариантов, он чем-то лучше, чем-то
>хуже остальных. Надеюсь, что набил без ошибок, не проверял.
>
>SELECT /*+ USE_HASH(c_b, balance) */
> c_b.id
> , c_b.name
> , balance.summa
> , balance.data
> FROM (
> SELECT client.id id
> , client.name name
> , MAX(data) dt
> FROM ostatki balance
> , klients client
> WHERE balance.data <= TRUNC(SYSDATE)
> AND client.id = balance.id
> GROUP BY
> client.id
> , client.name
> ) c_b
> , ostatki balance
> WHERE balance.id = c_b.id
> AND balance.data = c_b.dt
>/
>--
>Vladimir Begun | The statements and opinions expressed
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
SEEN-BY: 50/520 523 993 51/7 450/102 159 452/25 461/33 43 640 463/220 257
SEEN-BY: 464/34 36 465/204 466/20 467/70 95 469/125 999 550/5068 4615/21
SEEN-BY: 4623/55 4625/8 9 4626/6 4631/13 4641/444 4643/19 4653/10 4657/50
SEEN-BY: 5000/44 76 5000 5001/27 77 211 5002/5002 5003/9 34 5004/16 5005/44
SEEN-BY: 5006/1 5007/1 5009/9 5010/70 77 222 5011/13 5012/1 5015/4 28
SEEN-BY: 5019/22 28 5020/20 37 52 52 69 79 104 114 115 118 128 150 175 194
SEEN-BY: 5020/238 238 348 362 392 400 400 496 642 647 732 753 758 760 768
SEEN-BY: 5020/870 902 921 982 1057 1100 1169 1200 1212 1234 1301 1423 1535
SEEN-BY: 5020/1626 1642 1694 1873 1930 1951 2013 2020 2200 3637 4400 4441
SEEN-BY: 5021/3 29 5022/5 5023/11 5024/11 5025/3 5026/14 45 78 5028/51
SEEN-BY: 5029/1 50 5030/115 175 195 251 382 448 613 757 920 953 1016 1023
SEEN-BY: 5030/1400 1900 5031/26 5032/6 16 5033/1 5034/1 5035/10 5036/1 13
SEEN-BY: 5037/21 5038/7 5040/33 47 5041/4 5042/8 5045/7 42 5049/1 64 125
SEEN-BY: 5050/9 5051/15 35 5052/4 5053/16 18 777 5054/1 9 10 30 37 50 79
SEEN-BY: 5056/16 5057/1 5058/24 1000 5059/10 5060/88 90 5061/6 15 5063/27 60
SEEN-BY: 5064/5 7 35 36 5066/18 5069/128 5070/26 66 5071/1 5075/10 5077/3
SEEN-BY: 5078/20 5079/36 45 49 5080/80 111 301 1003 5081/2 3 5082/6 5083/13
SEEN-BY: 5083/21 5085/13 75 5090/2 91 1029 5091/100 5093/27 5095/1 5100/8
SEEN-BY: 5100/113 6009/8 6023/1 6028/1 6035/1 6037/1 6083/1
PATH: 5020/400 238 52 5054/1 79