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

Вниз

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

 
MakNik ©   (2004-05-11 17:49) [0]

Помогите, плз., написать простой SQL-запрос!!!
Исходные данные:
…  Tabn   …   Usetabn
---------------------
… «0102»  …     1
… «1134»  …     0
… «D733»  …     0
… «910A»  …     1

Необходимо выбрать из таблицы все записи, подменив при этом значение поля tabn на «» если поле Usetabn=0, и оставить тоже значение если Usetabn=1.
Нужно получить:
…  Tabn   …   Usetabn
---------------------
… «0102»  …     1
…   «»    …     0
…   «»    …     0
… «910A»  …     1


 
Johnmen ©   (2004-05-11 17:51) [1]

Какие встроенные функции MySQL сервера знаешь ?


 
MakNik ©   (2004-05-12 10:01) [2]

... я ошибся, не MySQL а MSSQL...
... на самом деле задача намного сложнее... кроме всего прочего, у каждой записи есть суммы, которые складываются для пустых Tabn и берутся отдельно, если есть Tabn...


 
Jee ©   (2004-05-12 10:06) [3]

select
 case
   when Usetabn = 1 then Tabn
   else ""
 end as Tabn
from yourtable


 
Курдль ©   (2004-05-12 10:27) [4]


> у каждой записи есть суммы, которые складываются для пустых
> Tabn и берутся отдельно, если есть Tabn...

Суммы чего? Собственных полей записи? Или еще каких-то выборок из других таблиц?


 
MakNik ©   (2004-05-12 10:48) [5]

... выборок из других таблиц...


 
bushmen ©   (2004-05-12 10:52) [6]

>у каждой записи есть суммы, которые складываются для пустых >Tabn и берутся отдельно, если есть Tabn

А нельзя сказать проще, что суммы тех записей, у которых Usetabn=0 складываются, а для тех, у кого 1 - берутся отдельно?


 
Курдль ©   (2004-05-12 10:53) [7]


select
case
  when Usetabn = 1
  then
    Tabn as Tabn,
    sum(Field1) from yourtable2 as SumField
  else
    ""   as Tabn,
    sum(Field1) from yourtable3 as SumField
end
from yourtable
/CODE>


 
bushmen ©   (2004-05-12 10:59) [8]

>Курдль ©   (12.05.04 10:53) [7]
А ты сам-то проверял это ?


 
Курдль ©   (2004-05-12 11:08) [9]

Не - а :)
Но концепция такая! (Чё, лень самому?)


 
Курдль ©   (2004-05-12 11:19) [10]

Исправленный и проверенный на Sybase запрос:

select
 case SBJ_TYPE
   when 1 then S.FL_NAME
   else S.UL_NAME
 end as SBJ_NAME,
 case SBJ_TYPE
   when 1 then (select count(*) from SC.SC_ACCOUNTS A where A.SBJ_ID_RASP = S.SBJ_ID)
   else (select count(*) from SC.SC_ACCOUNTS A where A.SBJ_ID_BANK = S.SBJ_ID)
 end as ACC_COUNT
from SC.SC_SUBJECTS S


Что, все разжевывать надо? :(



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
3-1083398938
Andriy Tysh
2004-05-01 12:08
2004.05.30
EDBClient при закрытии ClientDataSet a


14-1084130691
Knight
2004-05-09 23:24
2004.05.30
Gif в TImage... почему через LoadFromFile - ошибка?


4-1082097782
Zyb
2004-04-16 10:43
2004.05.30
Минимизация окна


14-1084263033
PVOzerski
2004-05-11 12:10
2004.05.30
Нужна ли наука России? И нужна ли русской науке РАН?


14-1084337157
SVM (Perm)
2004-05-12 08:45
2004.05.30
Delphi 7 Update Pack