victorzadorozhnyy
@victorzadorozhnyy

Как сделать такой SELECT из значений одной колонки с умножением на значение другой?

Есть квери
SELECT ps_ur AS UR, COUNT(ps_ur) AS Value FROM patient_services GROUP BY UR 
UNION ALL
SELECT eng_ur AS UR, COUNT(eng_ur) AS Value  FROM engagements WHERE LENGTH( eng_ur )>0  GROUP BY UR

выдает результат типа

UR Value
002035 3
002400 2
005441 4

Мне нужно посчитать сколько пациентов М и Ж у меня прошли обследование из таблицы с данными пациентов
SELECT 
SUM( CASE WHEN patient_gender = 'Male' THEN 1 ELSE 0 END ) Male, 
SUM( CASE WHEN patient_gender = 'Female' THEN 1 ELSE 0 END ) Female 
FROM patients WHERE patient_ur 
//Дальше не знаю что применить IN call foreach...
//Нужно из результатов первого запроса подсчитать пол и умножить на value

как такое сделать?
  • Вопрос задан
  • 264 просмотра
Решения вопроса 1
victorzadorozhnyy
@victorzadorozhnyy Автор вопроса
SELECT 
SUM( CASE WHEN patient_gender = 'Male' THEN 1*xxx.Value ELSE 0 END ) Male, 
SUM( CASE WHEN patient_gender = 'Female' THEN 1*xxx.Value ELSE 0 END ) Female 
FROM patients JOIN (
SELECT ps_ur AS UR, COUNT(ps_ur) AS Value 
FROM patient_services 
GROUP BY UR 
UNION ALL
SELECT eng_ur AS UR, COUNT(eng_ur) AS Value  
FROM engagements 
WHERE LENGTH( eng_ur )>0  
GROUP BY UR ) xxx ON  patients.patient_ur = xxx.UR
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы