просто подробно расскажу о некоторых проблемах с этим:
замените предложение from в подзапросе на что-то вроде этого:
from Member m
inner join Member_Official_Info moi
on m.pk_member_id=moi.fk_member_id
left outer join Event_Members em
on m.pk_member_id=em.fk_member_id
left outer join Dining_Members dm
on m.pk_member_id=em.fk_member_id
left outer join JF2_Members jm
on m.pk_member_id=em.fk_member_id
Я думаю, как и всеиначе, это, вероятно, устранит необходимость в вашей группе с помощью предложения
. Я бы также изменил ваше условие where в подзапросе на:
where m.membership_expiry_date>='1/1/2008'
and m.membership_expiry_date<'1/1/2009'
Кроме того, я бы изменилваш payamt и код режима примерно такой:
case when coalesce(moi.credit_card_amt,0)>0 then moi.credit_card_amt
when coalesce(moi.cheque_amt,0)>0 then moi.cheque_amt
case when coalesce(moi.debit_card_amt,0)>0 then moi.debit_card_amt
case when coalesce(moi.cash_amt,0)>0 then moi.cash_amt
Кроме того, существует несоответствие с псевдонимами столбцов.в определенных точках вы используете имя столбца =, или вы используете как «имя столбца», или даже как [имя столбца].Это довольно запутанно, поэтому я бы выбрал один из путей к столбцам псевдонимов и придерживался его.
Кроме того, если исправление объединений работает и не требует, чтобы вы делали группу, то переместите все изпричина подзапроса нет необходимости