Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
19 / 19 / 12
Регистрация: 09.12.2014
Сообщений: 250
1

странный запрос

07.04.2016, 14:47. Показов 990. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такая таблица:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
declare @tab TABLE 
(
    otdel int
    ,summa int
    ,instruk int
)
insert into @tab values(12,12,0)
insert into @tab values(15,13,1)
insert into @tab values(null,16,0)
insert into @tab values(17,15,0)
 
 
 
select * from @tab order by summa desc
Суть: есть в ней столбец с instruk, который может быть =0 или 1,
если во всей таблице есть хотя бы 1 строка с instruk=1, то нужно исключить из
select * from @tab order by summa desc
все строки с otdel=null
если же все instruk=0, то выполняется select * from @tab order by summa desc без изменений.
как это сделать запросом?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2016, 14:47
Ответы с готовыми решениями:

Перекрестный запрос. Странный вывод данных
Здравствуйте, Знатоки и Знаточки! При создание перекрестного запроса получается не то, что хотел...

Мега странный запрос
Суть в том что мне нужно в одном запросе сделать 3 вещи, а именно. 1. удалить данные из одной...

Странный глюк
Перестал работать один простой запрос, все вроде правильно сделал и раньше работало как положено....

Странный запрос на сервер srv195-131.vkontakte.ru
Друзья, всем доброго дня :) Подскажите мне плиз, что это за такие адреса?...

4
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
07.04.2016, 14:57 2
T-SQL
1
2
3
IF(instruk=0) THEN SELECT * from @tab where otdel is not null order by summa desc;
    ELSE  SELECT * from @tab order by summa desc;
    END IF;
0
19 / 19 / 12
Регистрация: 09.12.2014
Сообщений: 250
07.04.2016, 15:29  [ТС] 3
Игорь1986,
Ну это просто через иф, но дело в том что у меня запрос намного сложнее, и этот instruk выставляется в самом запросе.

Вот пример более приближённый:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
declare @tab TABLE 
(
    otdel int
    ,summa int
    ,instruk int
)
declare @tab2 TABLE 
(
    otdel int
    ,summa int
    ,instruk int
)
 
insert into @tab values(12,12,330)
insert into @tab values(15,13,13)
insert into @tab values(null,16,3)
insert into @tab values(17,15,0)
 
insert into @tab2
select otdel,summa
,case when instruk in (11,12,73,74,154,281,226,34,237) then 1 else 0 end as instruk 
from @tab 
order by summa desc
 
select * from @tab2
где на месте "select otdel,summa,instruk from @tab " у меня запрос на 100 строк кода.
А в результате нужно получить 1й строкой в @tab2 максимум по сумме, при тех условиях что в 1м посте.
0
3544 / 2119 / 751
Регистрация: 02.06.2013
Сообщений: 5,141
07.04.2016, 15:42 4
Лучший ответ Сообщение было отмечено texnix как решение

Решение

T-SQL
1
2
3
4
5
6
7
8
select
 *
from
 @tab
where
 not exists(select * from @tab where instruk = 1) or otdel is not null
order by
 summa desc;
0
19 / 19 / 12
Регистрация: 09.12.2014
Сообщений: 250
07.04.2016, 16:31  [ТС] 5
invm, Ну да, пришлось так сделать, хоть и увеличило число итераций.
0
07.04.2016, 16:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2016, 16:31
Помогаю со студенческими работами здесь

Странный doc(rtf) файл (совсем странный)
Добрый день, сегодня на работе столкнулся с очень странным .doc файлом. 3 страницы - вес 45,9 МБ....

Странный вирус
Люди нужна помощ комп походу подхватил какойто вирусняк и этот вирус делает попытки подключения к...

странный пробел
Коллеги, просматривал файл, обнаружил странный пробел. Файл приложен - там две ячейки, в первой...

Странный error
Мне приходится после каждого прогона менять имя каталога, иначе не компилится. Как бороться и как...

Странный калькулятор
Привет, помогите пожалуйста исправить калькулятор. Когда ставлю знаки "-" или "+", выполняется...

Странный звук в ПК
Всем доброго дня! Скажем так у меня появился вопрос достаточно известный на просторах интернета, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru