Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227

Как сгрупировать несколько запросов

12.02.2019, 14:35. Показов 3102. Ответов 35

Студворк — интернет-сервис помощи студентам
Уважаемые друзья . Благодаря Вашим подсказкам я уже практически написал свою первую программу . За что хочу всем жителям форума принести огромную БЛАГОДАРНОСТЬ.

Однако осталось ещё несколько вопросов которые никак не дают покоя и ответ на которые хотелось бы знать.

В частности хочу спросить .

Можно ли и если можно то как сформировать несколько SQL запросов из одного подключения , результат этих запросов поместить во временные переменные с возможностью их дальнейшего использования в DataGrid.?

Иными словами мне необходимо создать более десяти простых запросов типа SELECT count (*) From TALON18
SELECT count (*) From TALON18 where POL = 1 "; и т.д. затем записать результат каждого из них во временную переменную. А потом все переменные со своими значениями передать в отдельные столбцы DataGrid. (И всё ето по нажатию одной кнопки)
То есть результатом будет некий отчёт в DataGrid где в каждой из колонок будет цифра количества записей по тому или другому запросу?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2019, 14:35
Ответы с готовыми решениями:

Как отправить несколько ПОСТ запросов при одном нажатии.
Нужно сделать так: В текстБокс вводим нужное кол-во отправляемых запросов. Нажимаем на баттон1 и у нас отправляется столько...

Несколько запросов подряд
У меня есть вот такое подключение и запрос string sql = "SELECT name, сount FROM " + table + " WHERE name LIKE '%" + query +...

Несколько запросов подряд
Это работает, но с точки зрения "грамматики программирования" это правильно: ? SqlCommand cmd = new SqlCommand("CREATE LOGIN...

35
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
15.02.2019, 12:55  [ТС]
Студворк — интернет-сервис помощи студентам
За два часа поиска по гуглю картинка немного прояснилась. Наконец то я понял что означает GROOP BY.
Оказалось всё не так страшно как казалось .

составил такой вот запрос.

C#
1
string dbf = "SELECT DG10_1, COUNT(SYS_N) FROM TALON19 GROUP BY DG10_1";
Теперь при нажатии кнопки в DataGrid формируется таблица с количеством пациентов по каждому из диагнозов.

Однако теперь у меня возник ещё один вопрос , как к имеющейся конструкции прикрутить BETWEEN дабы объединить некоторые диагнозы по класификации ? Примерно так BETWEEN A00.1 AND T09.1
А так же куда добавить WHERE ?
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
15.02.2019, 15:10
Цитата Сообщение от shadow_2 Посмотреть сообщение
А так же куда добавить WHERE ?
как куда? с текст скрипта запроса
1
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
15.02.2019, 15:25  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
как куда? с текст скрипта запроса

Если делаю так

C#
1
string dbf = "SELECT DG10_1, COUNT(SYS_N) FROM TALON19 WHERE DG10_1 BETWEEN A00 AND I80 GROUP BY DG10_1";
Вылетает с ошибкой Нет значений для одного или нескольких необходимых параметров.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
15.02.2019, 15:42
Цитата Сообщение от shadow_2 Посмотреть сообщение
DG10_1 BETWEEN A00 AND I80
А что такое A00 и I80? Согласно синтаксису SQL это д.б. наименования полей.
1
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
15.02.2019, 15:48  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
А что такое A00 и I80? Согласно синтаксису SQL это д.б. наименования полей.
Шифры заболеваний. Они присутствуют в колонке DG10_1 и я хочу объединить этот диапазон и посчитать количество пациентов в этом диапазоне. Но почему то не получается.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
15.02.2019, 15:55
Цитата Сообщение от shadow_2 Посмотреть сообщение
Шифры заболеваний
Если это строковые литералы, то они д.б. заключены в апострофы
1
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
15.02.2019, 20:57  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Если это строковые литералы, то они д.б. заключены в апострофы
Да действительно это литералы . Спасибо огромное. Поставил кавычки и всё заработало

Добавлено через 25 минут
Только получил я совсем не тот результат который ожидал. У меня в таблице отобразился заданный диапазон а мне необходимо этот диапазон объединить в одну строку . Какой командой это сделать?

Добавлено через 4 часа 9 минут
Написал такой вот запрос, но он почему то не работает.
C#
1
string dbf = "SELECT TALON19.DG10_1 AS Диагноз , COUNT(TALON19.SYS_N ) AS Количество_пациентов ,U3.POL  FROM TALON19, U3 WHERE TALON19.SYS_N = U3.POL =1 GROUP BY DG10_1";
Хочу сгруппировать количество пациентов (поле SYS_N из таблицы TALON19 ) по каждому из диагнозов (поле DG10_1 из таблицы TALON19) причём выбрать только тех чей POL = 1 (поле POL из таблицы U3 ).

Однако вылетает ошибка . Помогите решить.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
16.02.2019, 11:15
Цитата Сообщение от shadow_2 Посмотреть сообщение
WHERE TALON19.SYS_N = U3.POL =1
это кто так подсказал делать?
зы на информатике в школе преподДавали?
1
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
16.02.2019, 18:47  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
это кто так подсказал делать?
Такую конструкцию я увидел у одного зарубежного дядьки . Самое интересное у него это работало .

Свой запрос я переделал и теперь он выглядит вот так.
C#
1
string dbf = "SELECT DG10_1 AS Диагноз, COUNT(SYS_N) AS 'из них у мужчин' FROM TALON18 WHERE SYS_N IN (SELECT SYS_N FROM U3 WHERE POL = '1') GROUP BY DG10_1";
Теперь всё работает.

Но у меня ещё остались вопросы на которые я нигде не могу найти ответ.

Для лучшего понимания прикладываю картинку

И так в таблице TALON18 (она как раз на картинке) есть колонка DG10_1 (на ней курсор) в этой колонке находятся различные диагнозы их очень много. Поэтому в медицинской статистике их группируют в категории заболеваний.
Каждая категория включает в себя десятки а то и сотни диагнозов.

Отсюда вопрос

Можно ли при помощи SQL запроса сделать такое объединение и посчитать количество пациентов соответствующее каждой из категорий ?
Допустим диагнозы которые видны на картинке в колонке DG10_1 объединить вместе и поместить в одно поле с названием
"Острые респираторные заболевания"
Миниатюры
Как сгрупировать несколько запросов  
0
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
18.02.2019, 12:26  [ТС]
Перечитал кучу информации но нигде не могу найти решения.
Может такое объединение делается по другому ?
Не с помощью запросов ? Подскажите пожалуйста . Как создать результирующий отчёт?
Дайте хоть ссылки что почитать.
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
18.02.2019, 12:54
Цитата Сообщение от shadow_2 Посмотреть сообщение
Можно ли при помощи SQL запроса сделать такое объединение и посчитать количество пациентов соответствующее каждой из категорий ?
Можно, если у вас есть таблица, где сопоставлены диагноз и категория.
0
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
18.02.2019, 14:24  [ТС]
Цитата Сообщение от Igr_ok Посмотреть сообщение
Можно, если у вас есть таблица, где сопоставлены диагноз и категория.
Спасибо.

То есть мне необходимо сделать ещё одну таблицу где напротив шифра необходимого диагноза будет допустим буква А?
И тогда выборку делать уже по этой букве?

А по другому никак это не реализуется ?
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
18.02.2019, 15:26
если DG*_* - это куча полей в одной таблице - могу только посочувствовать. Ибо это трэш и угар
1
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
18.02.2019, 15:34
Цитата Сообщение от shadow_2 Посмотреть сообщение
А по другому никак это не реализуется ?
А вы можете предложить алгоритм, который бы это сделал, без связи между диагнозом и категорией?
P.S. Если можете избавиться от dbf, чтобы использовать более современную БД-избавляйтесь.
1
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
18.02.2019, 17:18  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
если DG*_* - это куча полей в одной таблице - могу только посочувствовать. Ибо это трэш и угар
Эти таблицы мне достались по "наследству" из старой программы под Fox которая даже запускалась через раз.
Поэтому для облегчения работы решил переделать всё под свою "оболочку".
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
18.02.2019, 19:59
что сказать, "облегчайся". и совет про "избавляйся" уже прозвучал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2019, 19:59

MySqlConnection, несколько запросов одновременно
В общем написал вот такой класс для сервера, заметил что если не освободить ресурсы то MySqlConnection выдаёт ошибку, поэтому возник...

Несколько запросов к Oracle. NextResult()
Как организовать обработку сразу нескольких запросов? База Оракл, приложение ASP.net сайт При 1 запросе все работает хорошо, добавляю...

Выполнить несколько запросов в одном подключении
List<string> model = new List<string>(); List<string> nomer= new List<string>(); string path =...

Несколько запросов в один дата грид
У меня есть запрос который выводит данные из некоторых таблиц базы в DataGrid. Нужно добавлять аналогичные запросы в этот DataGrid но уже...

Несколько http запросов, при нажатии на кнопку
string MakeRequest(string url, string sCookies) { httpWebRequest = (HttpWebRequest)WebRequest.Create(url); ...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru