Ajuda com Select Utilizando Union All e Cast

Firebird

05/08/2009

Olá,

Estou fazendo um select com duas tabelas utilizando a opção UNION. Em alguns campos faço um cast pois cada tabela tem um nome diferente no campo. Veja o script:

SELECT CLIENTE, VENCIMENTO, CAST(SALDO_RECEBER AS FLOAT) AS VALOR_FINAL FROM CONTASRECEBER WHERE VENCIMENTO BETWEEN :VInicio AND :VFim
UNION ALL
SELECT CLIENTE, VENCIMENTO, CAST(VALOR_RECEBIDO AS FLOAT) AS VALOR_FINAL FROM CONTASRECEBIDAS WHERE VENCIMENTO BETWEEN :VInicio AND :VFim

Funciona direitinho. Minha dúvida é: no relatório eu gostaria de identificar cada linha para saber se o registro impresso é de CONTASRECEBER ou de CONTASRECEBIDAS

Alguém pode me ajudar?

Uso D7 e FB 2.0

Obrigado


Armindo

Armindo

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

05/08/2009

acrescente um campo virtual:
SELECT
  CLIENTE, VENCIMENTO,
  SALDO_RECEBER AS VALOR_FINAL,
  ´RECEBER´ AS TIPO
FROM
  CONTASRECEBER
WHERE
  VENCIMENTO BETWEEN :VInicio AND :VFim
UNION ALL
SELECT
  CLIENTE, VENCIMENTO,
  VALOR_RECEBIDO AS VALOR_FINAL,
  ´RECEBIDAS´ AS TIPO
FROM
  CONTASRECEBIDAS
WHERE
  VENCIMENTO BETWEEN :VInicio AND :VFim

sobre fazer o CAST: só é necessário se os campo forem de tipos diferentes. no exemplo acima eu supus que os campos são do mesmo tipo e então apenas dei um alias (apelido) pra eles.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

05/08/2009

SELECT
  CLIENTE, VENCIMENTO,
  SALDO_RECEBER AS VALOR_FINAL,
  ´A RECEBER´ AS TIPO
FROM
  CONTASRECEBER
WHERE
  VENCIMENTO BETWEEN :VInicio AND :VFim
UNION ALL
SELECT
  CLIENTE, VENCIMENTO,
  VALOR_RECEBIDO AS VALOR_FINAL,
  ´RECEBIDA´ AS TIPO
FROM
  CONTASRECEBIDAS
WHERE
  VENCIMENTO BETWEEN :VInicio AND :VFim



GOSTEI 0
Armindo

Armindo

05/08/2009

SELECT
  CLIENTE, VENCIMENTO,
  SALDO_RECEBER AS VALOR_FINAL,
  ´A RECEBER´ AS TIPO
FROM
  CONTASRECEBER
WHERE
  VENCIMENTO BETWEEN :VInicio AND :VFim
UNION ALL
SELECT
  CLIENTE, VENCIMENTO,
  VALOR_RECEBIDO AS VALOR_FINAL,
  ´RECEBIDA´ AS TIPO
FROM
  CONTASRECEBIDAS
WHERE
  VENCIMENTO BETWEEN :VInicio AND :VFim


Obrigado.


GOSTEI 0
POSTAR