Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c