[RESOLVIDO]select case dentro de select

pessoal;

tenho a seguinte query que funciona:

SELECT distinct c.id_conta, c.nome_fornecedor, c.nome_produto, tp.nome_tipo_pagamento,
c.valor_total, c.qtd_parcelas, c.valor_parcelas,
(select his.valor_restante from historicorecebimentocontas his
where c.id_conta = his.id_conta order by his.dt_pagto desc limit 1) as valor_restante
FROM contaspagar c
inner join tipospagamentos tp on tp.id_tipo_pagamento = c.id_tipo_pagamento
left join historicorecebimentocontas h on h.id_conta = c.id_conta

e na coluna valor_restante é exibido da seguinte maneira:

valor_restante
0.00
null
null

devido a registros que não possuem ligação entre as tabelas historicorecebimentocontas e contaspagar.

e quando apresentar null eu quero exibir a coluna c.valor_total.

Alguém teria alguma sugestão ?

Obrigado.

Já tentou assim???

SELECT distinct c.id_conta, c.nome_fornecedor, c.nome_produto, tp.nome_tipo_pagamento, c.valor_total, c.qtd_parcelas, c.valor_parcelas, (select ISNULL(his.valor_restante, c.valor_total) from historicorecebimentocontas his where c.id_conta = his.id_conta order by his.dt_pagto desc limit 1) as valor_restante FROM contaspagar c inner join tipospagamentos tp on tp.id_tipo_pagamento = c.id_tipo_pagamento left join historicorecebimentocontas h on h.id_conta = c.id_conta

Abraços…

Deu certo não !!!
o mysql acusa erro no comando ISNULL.

ahhhh… é MySQL, desculpa, este que passei é SQL Server

para o MySQL faz assim

SELECT distinct c.id_conta, c.nome_fornecedor, c.nome_produto, tp.nome_tipo_pagamento, c.valor_total, c.qtd_parcelas, c.valor_parcelas, (select IFNULL(his.valor_restante, c.valor_total) from historicorecebimentocontas his where c.id_conta = his.id_conta order by his.dt_pagto desc limit 1) as valor_restante FROM contaspagar c inner join tipospagamentos tp on tp.id_tipo_pagamento = c.id_tipo_pagamento left join historicorecebimentocontas h on h.id_conta = c.id_conta

Resolvido.
Obrigado.

Obs: Me desculpe pela falta de informação.