Autor Tópico: AJUDA EM CONSULTA  (Lida 531 vezes)

marcelo.mytecnologia

  • Iniciante
  • **
  • Mensagens: 70
    • My Tecnologia
    • Email
AJUDA EM CONSULTA
« Online: Outubro 28, 2014, 05:19:04 pm »
Boa Tarde,

     Estou tentando criar essa consulta com a subconsulta usando UNION....Separadas as duas funcionam direitinho, só não sei como juntá-las como Query e subquery. Será que seria possível? Alguém poderia me ajudar?

   CXDIAR.id_Cod_equipamento,
   CXDIAR.mes_base,
   CXDIAR.periodo_inicial,
   CXDIAR.periodo_final,
   CXDIAR.saldo_mes_anterior,
   CVNIO.Codconvenio,
   CVNIO.Cod_equipamento,
   CVNIO.nome_convenio,
   CVNIO.Numeroconvenio,
   CVNIO.Qtde_parcelas,
   CVNIO.Datainicio,
   CVNIO.Datatermino,
   CVNIO.Valorconvenio
FROM
   FIN_CONVENIOS CVNIO INNER JOIN FIN_CONTROLE_CAIXA_INTERNO CXDIAR ON CVNIO.Cod_equipamento = CXDIAR.id_Cod_equipamento
   
   (SELECT
       id,
       id_Cod_equipamento,
       id_Codconvenio,
       id_Cod_itens_despesas,
       data,
       SUM(Valor)
    FROM
       FIN_CONTROLE_CAIXA_DEBITOS CXDEB
    GROUP BY
       id_Cod_itens_despesas)
   
UNION ALL


   (SELECT
       CodContapagar,
       Cod_equipamento,
       Codconvenio,
       id_Cod_itens_despesas,
       Datavencimento,
       SUM(Valordocumento)
    FROM
       FIN_CONTAS_PAGAR CPGAR
    GROUP BY
       id_Cod_itens_despesas)     


SELECT
   CXDIAR.id_Cod_equipamento,
   CXDIAR.mes_base,
   CXDIAR.periodo_inicial,
   CXDIAR.periodo_final,
   CXDIAR.saldo_mes_anterior,
   CVNIO.Codconvenio,
   CVNIO.Cod_equipamento,
   CVNIO.nome_convenio,
   CVNIO.Numeroconvenio,
   CVNIO.Qtde_parcelas,
   CVNIO.Datainicio,
   CVNIO.Datatermino,
   CVNIO.Valorconvenio
FROM
   FIN_CONVENIOS CVNIO INNER JOIN FIN_CONTROLE_CAIXA_INTERNO CXDIAR ON CVNIO.Cod_equipamento = CXDIAR.id_Cod_equipamento
   
   (SELECT
       id,
       id_Cod_equipamento,
       id_Codconvenio,
       id_Cod_itens_despesas,
       data,
       SUM(Valor)
    FROM
       FIN_CONTROLE_CAIXA_DEBITOS CXDEB
    GROUP BY
       id_Cod_itens_despesas)
   
UNION ALL


   (SELECT
       CodContapagar,
       Cod_equipamento,
       Codconvenio,
       id_Cod_itens_despesas,
       Datavencimento,
       SUM(Valordocumento)
    FROM
       FIN_CONTAS_PAGAR CPGAR
    GROUP BY
       id_Cod_itens_despesas)     

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:AJUDA EM CONSULTA
« Responder #1 Online: Outubro 29, 2014, 07:04:09 am »
Bom dia, para o union funcionar deve ter exatamente o número de colunas entre os 2 selects.
UNION ALL repete valor
UNION não repete valor

Você pode fazer uma consulta que espera um where sendo a sub consulta, porém para isso funcionar o where deve esperar uma condição com variável, exemplo:
select idcab, descricao from itens1 where idcab = '[var_idcab]'
union alll
(
select idcab, nome from itens2 where idcab = '[var_idcab]' (aqui as colunas não precisam ter o mesmo nome, porém o mesmo formato)
)
essa seria a sub consulta

e a consulta principal você pode fazer no mesmo tipo com union ou normal.

Se você quiser essa variável do filtro, crie um campo no filtro com nome que não exista e no onScriptIni atribuia o valor desse campo à variável do where

marcelo.mytecnologia

  • Iniciante
  • **
  • Mensagens: 70
    • My Tecnologia
    • Email
Re:AJUDA EM CONSULTA
« Responder #2 Online: Outubro 29, 2014, 07:36:54 am »
Rodrigo, sem querer abusar de sua boa vontade, poderias me mostrar como fazer isso usando as consultas acima, as que postei?. Veja eu acho que nunca postei uma pergunta aqui, sempre tento me virar sozinho nos fóruns e manuais, etc...estou há 3 dias tentando e buscando solução, só ai resolvi baixar a guarda e pedir ajuda aos nosso companheiros de scriptcase...

Se for possível eu agradeço, se não der já estou tentando com sua dica de qualquer forma.


Obrigado novamente pela imensa ajuda...

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:AJUDA EM CONSULTA
« Responder #3 Online: Outubro 29, 2014, 07:54:27 am »
Posso ajudar sim...
Só me fala uma coisa o union deve estar em todos os seus selects?
Qual é consulta, qual é subconsulta?