Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

SQL-запрос   Найти похожие ветки 

 
Sandman25 ©   (2004-07-02 12:23) [40]

[39] Johnmen ©   (02.07.04 12:19)

А кто мешает написать
select sum(case kodpl when "П" then Summ when "Р" -Summ  else 0 end)
from table

Просто [17] работает быстрее, а если мы имеем check(kodPl in "П", "Р"), то 100% надежно.


 
Johnmen ©   (2004-07-02 12:26) [41]

>Sandman25 ©   (02.07.04 12:23) [40]
>А кто мешает написать...

А это уже "KodPl будет анализироваться дважды"
:)

>Просто [17] работает быстрее

Разумно ли экономить на спичках в данном случае ?


 
Курдль ©   (2004-07-02 12:27) [42]


> Sandman25 ©   (02.07.04 12:23) [40]
> [39] Johnmen ©   (02.07.04 12:19)
>
> А кто мешает написать
> select sum(case kodpl when "П" then Summ when "Р" -Summ
>  else 0 end)
> from table

АднАзнАчнА!!! Просто лень было подумать :) Но ведь насколько лучше, чем варивнты с ХП, ХЗ и ТП?!


 
Sandman25 ©   (2004-07-02 12:30) [43]

ср.
if FieldByName("kodPl").AsInteger = 1 then
 ...
// без else!
if FieldByName("kodPl").AsInteger = 2 then
 ..

и
case FieldByName("kodPl").AsInteger of
 1: ...
 2: ...

во втором случае анализируется либо 1 либо 2 раза, причем нет второго обращения к DataSet. Даже если оптимизатор заменяет первый случай на
LocalVar := FieldByName("kodPl").AsInteger;
if LocalVar = 1 then
 ...
// без else!
if LocalVar = 2 then

все равно имеем проигрыш из-за того, что сравнений в среднем 2, а не 1.5 как в моем варианте :)


 
Danilka ©   (2004-07-02 12:40) [44]

как не самый лучший вариант, чтобы не учитывать "О":

select sum(case when when kodpl="П" then Summ else -Summ end)
from table t1
where exists (select 1 from table where id = t1.id and kodpl in ("П", "Р"))

:))


 
Соловьев ©   (2004-07-02 12:43) [45]


> чтобы не учитывать "О":

select sum(case when when kodpl="П" then Summ where kodpl="Р" then -Summ end)
from table


 
Соловьев ©   (2004-07-02 12:47) [46]

Вот так правильно:
select sum(case kodpl when "П" then Summ when "Р" then Summ -Summ end)
from table



Страницы: 1 2 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.027 c
8-1083932415
Petrovitch
2004-05-07 16:20
2004.07.25
Как изменить разрешение (dpi) в BMP, JPG ?


14-1088780346
olookin
2004-07-02 18:59
2004.07.25
Психология армейца.


4-1087052115
juiceman
2004-06-12 18:55
2004.07.25
клавиатурный шпионаж


6-1085734986
Phantom
2004-05-28 13:03
2004.07.25
Как пропинговать ряд компьютеров


4-1087304170
ddrum
2004-06-15 16:56
2004.07.25
получение инфы о процессе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский