У меня есть запрос SQL, который выглядит следующим образом:
select L.ID, P.FIRSTNAME as Firstname, P.LASTNAME as Lastname, SUM(R.VAL), SUM(R2.VAL) from LABORATORY L
join RESULT R
on L.ID=R.ID
and R.RESID='Thingy1'
join PERSON P
on P.PERID=R.PERID
and P.LASTNAME={Lastname} <-this is part of the framework I'm working with and gets replaced, don't worry about it
and P.FIRSTNAME={Firstname}
join RESULT R2
on R2.PERID=P.PERID
and R2.RESID='Thingy2'
Теперь, так как я присоединяюсь к Таблице результатов 2 раза, обе суммы в два раза больше, чем должны быть. Если я оставляю суммы, я получаю эту таблицу в результате.
123 Ману Драйер
234 Михаэль Шухмахер
423 Барак Обама
123 Ману Дрейер
234 Михаэль Шухмахер
423 Барак Обама
Извините, я не знаю, как правильно отобразить таблицу здесь: P
Как видите, каждое значение в этой таблице встречается 2 раза. Если я добавлю «отличное», то будет только 3 значения (правильное), но значение СУММЫ все еще удваивается. Любая подсказка о том, что я мог сделать с этим, была бы полезна. Со счетом я могу написать:
count(distinct L.ID)
Но это не работает с суммами, поскольку некоторые люди имеют одинаковые значения (например, возраст). Суммирование различных возрастов, чтобы получить общий возраст людей, не работает;)