У меня есть таблица с инцидентами, которая содержит столбец для числа, пострадавшего в инциденте, и столбец за число, убитое в этом инциденте. Таблица инцидентов связана с таблицей «Участники», где вы можете найти столбец для возраста человека, и есть еще одна таблица «Участники» со столбцом для типа (мужчина (id = 1), женщина (id = 2)). Итак, я хочу получить номер столбца, поврежденного, номер столбца убит, где тип - мужчина, а рядом с ним поврежден номер столбца, номер столбца убит, где тип - женщина, все группы по возрасту.SQL select column несколько раз с разными условиями
select
ip.age as age,
sum(i.number_injured) as injured,
sum(i.number_killed) as killed
from Incidents i
inner join Participants ip on i.id = ip.incident_id
inner join ParticipantTypes ipt on ip.type_id = ipt.id
where ipt.id = 1
group by ip.age
следующие работы запроса и получения результатов только для ParticipantTypes.type = 1 (человек)
Я хочу, чтобы это что-то вроде
select
ip.age as age,
sum(i.number_injured) as injured where ipt.id = 1,
sum(i.number_killed) as killed where ipt.id = 1,
sum(i.number_injured) as injured where ipt.id = 2,
sum(i.number_killed) as killed where ipt.id = 2,
from Incidents i
inner join Participants ip on i.id = ip.incident_id
inner join ParticipantTypes ipt on ip.type_id = ipt.id
group by ip.age
ipt.id = в 1 внутренний присоединиться была печать ошибка и да, я знал об осуществляемом в том, где пункт. Группа по возрасту является обязательным, позволяет переписать это нравится: выбрать ip.age как возраст, сумму (i.number_injured) в качестве потерпевших, где ipt.id = 1, сумма (i.number_killed) убитыми, где IPT. id = 1, sum (i.number_injured) как поврежденный, где ipt.id = 2, сумма (i.number_killed) убита, где ipt.id = 2, от инцидентов i внутреннее соединение Участники ip на i.id = ip.incident_id внутреннее соединение УчастникиТипы ipt на ip.type_id = ipt.id группа по ip.age –
@AntoniyMilenkinski: обновленный ответ на основе обновлений к quesiton. – DarkKnight