powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подсчёт количества клиентов с болезнью
1 сообщений из 1, страница 1 из 1
Подсчёт количества клиентов с болезнью
    #39595292
Takashi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются две таблицы:
Таблица Patient это наши пациенты, которые имеют:
1 идентификатор PatientId
2 ссылку на город проживания CityId
3 ссылку на диагноз: IcdItemId

Таблица IcdItem это древовидная таблица диагнозов (если у диагноза есть родитель, в таблице есть на него ссылка). Они имеют:
1 идентификтор IcdItemId
2 код/шифр ItemNo
3 название ItemName
4 ссылку на родителя IcdItemParent
5 уровень в дереве (чем больше, тем большая вложенность): TreeLevel
6 параметр по которому их можно отсортировать SortOrder
Скрипт создания таблиц можно скачать тут https://ru.files.fm/u/memy9gp6
Нужен отчёт, логика такова, что если у пациента "Тиф и паратиф", который является дочерним элементом "Кишечных инфекций", которые, в свою очередь, являются под элементом "Некоторых инфекционных и паразитарных болезней", то мы должны прибавить 1 ко всем узлам т.е. мы одним запросом считаем у скольких пациентов какая-нибудь из форм "Некоторых инфекционных и паразитарных болезней", с детализацией по подгруппам и по подгруппам подгрупп и так далее до бесконечности. При этом для наглядности нужно сделать отступы в зависимости от уровня вложенности диагноза.
Примерный результат: https://perfetto-furniture.com/][IMG] https://cdn1.savepice.ru/uploads/2018/2/2/9e80b5ebd7c0c58e49b91b4f30771f9a-full.jpg [/IMG]

SELECT
REPLICATE(' ',[TreeLevel])+[ItemNo]+':'+' '+[ItemName] as name
,[TreeLevel]
,[SortOrder]
,s.[ICDItemId]
,[ICDItemParent]
,case when [PatientId] is null then 0 else 1 end as id_Patient
,left([ItemNo],3) as key_id
into #a1
FROM [dbo].[ICDItem] as s
left join [dbo].[Patient] as p on s.ICDItemId=p.IcdItemId
ORDER BY [SortOrder];


SELECT *
FROM #a1 as t1
JOIN #a1 as t2 on t1.ICDItemId=t2.[ICDItemParent]
order by t2.SortOrder

Дальше не могу сообразить

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подсчёт количества клиентов с болезнью
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]