Jak użyć kolumny tworzonej w locie

0

Mam następujące tabele:

platnicy (kolumny id_platnicy, nazwa_platnicy)
users (kolumny id_users, id_platnicy, id_grupy, imie)
grupy (kolumny id_grupy, nazwa_grupy, id_platnicy)

Do usera może być bezpośrednio przypisany płatnik. Może on być też jednak przypisany do grupy do której user należy.

Potrzebuję wyciągnąć dane usera oraz id_platnicy i nazwa_platnicy płatnika do którego on lub jego grupa są przypisani.
Robię to tak:

SELECT users.imie,
				CASE WHEN users.id_platnicy=0 THEN
					CASE WHEN grupy.id_platnicy=0 THEN 0 ELSE grupy.id_platnicy END
				ELSE
					users.id_platnicy
				END as **id_platnicy**,
				(SELECT nazwa_platnicy FROM platnicy WHERE platnicy.id_platnicy=**id_platnicy**) as nazwa_platnicy
				FROM users
				LEFT JOIN grupy USING(id_grupy)

Jednak wyrzuca mi błąd "Subquery returns more than 1 row". Jeżeli zmienię nazwę "ogwiazdkowanych" kolumn na jakąś inną np. id_platnicy2 to działa, no ale wtedy zapytanie nie zwraca mi kolumny id_platnicy.

1
select
  u.imie,
  coalesce(pu.nazwa_platnicy, pg.nazwa_platnicy) nazwa_platnicy 
from
  users u
left join platnicy pu on pu.id_platnicy= u.id_platnicy
left join grupy g on g.id_grupy = u.id_grupy
left join platnicy pg on pg.id_platnicy= g.id_platnicy

1 użytkowników online, w tym zalogowanych: 0, gości: 1