возраст пациента, год рождения, кол-во мужчин, кол-во женщин, всего.
Для решения этой задачи, будем использовать файл с принятым прикрепленным населением, который мы получаем от МИАЦ vPRIK.dbf.
Скрипт написан для выполнения выборки на SQL Server 2012
- Код: выделить все
select
(2015)-Year(R.datr) as Лет,
YEAR(R.datr) as Год,
COUNT(RM.Пол) AS M,
COUNT(RZ.Пол) AS Ж,
COUNT(YEAR(R.datr)) as Итого
from REGISTR R
left join
(select
R1.NMEDK,
YEAR(R1.datr) as Год,
R1.POL AS Пол
from REGISTR R1
WHERE R1.POL='м') RM
ON R.NMEDK = RM.NMEDK
left join
(select
R2.NMEDK,
YEAR(R2.datr) as Год,
R2.POL AS Пол
from REGISTR R2
WHERE R2.POL='ж') RZ
ON R.NMEDK = RZ.NMEDK
inner join
(select
A.FAM,
A.IM,
A.OT,
A.DATR
from
opendatasource /*Здесь в зависимости от версии SQL, указываем свою версию поставщика Microsoft.ACE.OLEDB*/
('Microsoft.ACE.OLEDB.12.0',
'Data Source=F:\disp\;
Extended Properties=DBASE IV')...[vPRIK.dbf] A /*путь к файлу и имя файла*/
where a.miacres = '001'
and year(a.DATR) between 1916 and 1994 /*условие для выборки диспансерного населения*/
and (2015 - YEAR(a.DATR)) % 3 = 0) db
on r.FAM=db.FAM
AND r.IM = db.IM
AND R.OTCH = db.OT
AND R.DATR = db.DATR
GROUP BY YEAR(R.datr)
order by Год
Результат выполнения скрипта на изображении