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

Вывести количество по разным where в одном результате

03.02.2016, 12:36. Показов 1009. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сложно сформулировать, потому сразу пример:
 денег
вася1
вася2
вася3
иван4
иван5
иван6
вот исходная таблица, нужно получить после селекта такой результат:
 равен 1меньше 3х4 и вышеменьше 5
вася1203
иван0031
В своём коде я использовал для решения этой проблемы джоины:
Кликните здесь для просмотра всего текста
SQL
1
2
3
4
5
6
7
8
9
(SELECT MONTH(pr.DATE_1) mon,COUNT(pr.id) mes FROM priem pr
JOIN pacient p ON p.IDPriem=pr.id
GROUP BY MONTH(pr.DATE_1),YEAR(pr.DATE_1) ) al
JOIN 
(SELECT MONTH(pr.DATE_1) mon,COUNT(pr.id) det15 FROM priem pr
JOIN pacient p ON p.IDPriem=pr.id
WHERE (YEAR(pr.DATE_1-p.[DR])-1900)<15 --дети до 15ти лет
GROUP BY MONTH(pr.DATE_1),YEAR(pr.DATE_1) ) det15 ON det15.mon=al.mon
JOIN

но при 20 колонках код содержит очень много одинаковых строк, я уверен что существует более оптимальный метод, подскажите пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2016, 12:36
Ответы с готовыми решениями:

В результате утечки данных на одном из сайтов или в одном из приложений ваш пароль оказался раскрыт. Рекомендуем про
Кратко. Недавно переустановил Windows 10 Pro. Перед тем как переустановить, у меня появлялась какая-та нездоровая фигня при посещении...

COUNT по разным условиям в одном результирующем наборе
Добрый день. Имею, например, следующий запрос: SELECT P.Product ,COUNT(P.Product) FROM dbo.Product P WHERE...

Подсчет количества по разным значениям столбца в одном запросе
Здравствуйте. Подскажите как сделать лучше. допустим есть таблица в которой куча полей, но нас интересуют только поля &quot;status&quot;...

6
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
03.02.2016, 12:46
T-SQL
1
SUM(CASE WHEN ... THEN 1 ELSE 0 END)
1
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
03.02.2016, 12:50
T-SQL
1
2
3
4
5
6
7
8
9
10
select
 персона,
 count(case when денег = 1 then 1 end) as [= 1],
 count(case when денег < 3 then 1 end) as [< 3],
 count(case when денег >= 4 then 1 end) as [>= 4],
 count(case when денег < 5 then 1 end) as [< 5]
from
 Таблица
group by
 персона;
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
03.02.2016, 12:52
Цитата Сообщение от invm Посмотреть сообщение
T-SQL
1
2
3
4
5
6
7
8
9
10
select
 персона,
 count(case when денег = 1 then 1 end) as [= 1],
 count(case when денег < 3 then 1 end) as [< 3],
 count(case when денег >= 4 then 1 end) as [>= 4],
 count(case when денег < 5 then 1 end) as [< 5]
from
 Таблица
group by
 персона;
Так будет warning про игнорирование NULL в агрегатной функции
1
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
03.02.2016, 13:13
Цитата Сообщение от iap Посмотреть сообщение
Так будет warning про игнорирование NULL в агрегатной функции
Будет. Но он же не всегда мешает?
0
19 / 19 / 12
Регистрация: 09.12.2014
Сообщений: 250
03.02.2016, 13:52  [ТС]
а чем
T-SQL
1
SUM(CASE WHEN ... THEN 1 END)
от
T-SQL
1
count(case when .... then 1 end)
отличается?
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
03.02.2016, 14:02
Цитата Сообщение от texnix Посмотреть сообщение
а чем
T-SQL
1
SUM(CASE WHEN ... THEN 1 END)
от
T-SQL
1
count(case when .... then 1 end)
отличается?
Тем, что у меня ещё ELSE 0 написано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2016, 14:02
Помогаю со студенческими работами здесь

Как назначить разным программам разные сетевые интерфейсы на одном ПК
Привет всем, у меня такая задача, надо программам указать с какого wlan интерфейса получать интернет. Есть два сетевых wi-fi адаптера. Один...

Как задать в одном текстблоке разным участкам текста разный цвет и шрифт?
Как в C# задать в одном текстблоке разным участкам текста разный цвет и шрифт? Платформа: WP 8.1.

Количество элементов в результате запроса
сделал простенький запрос на вывод полей где есть определенное значение, а как сделать подсчет количества полей которые вывелись ? ...

Режет количество символов в результате
Есть такая функция, которая принимая URL должна возвращать результат http-запроса using System; using System.Data; using...

Количество строк в результате запроса
Подскажите пожалуйста, как узнать сколько значений вернет запрос? Вот код table.Clear(); MySqlConnection con = new...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru