Use UNION ALL entre os selects para uní-los. Só que o group by só
sera aceito no ultimo select. Se quiser, pode usar group by pelo numero da
coluna. Por exemplo, se quiser agrupar pela primeira e segunta colunas,
use:

GROUP BY 1,2


Att,

Leandro

--
Open WebMail Project (http://openwebmail.org)


---------- Original Message -----------
From: Hélder Rodrigues <[EMAIL PROTECTED]>
To: "delphi-br@yahoogrupos.com.br" <delphi-br@yahoogrupos.com.br>, "delphi-
[EMAIL PROTECTED]" <[EMAIL PROTECTED]>, "lista-
[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
Sent: Fri, 28 Jan 2005 10:39:18 -0200
Subject: [delphi-br] SQL muito complexa, unir 2 select

> Bom dia amigos,
> 
> Estou precisando unir duas consultas SQL ... (a base de dados 
> utilizada tabelas Paradox) e não sei qual cláusula usar (não tenho 
> muito experiência no assunto ...) devo usar UNION ou JOIN ???
> 
> A 1ª consulta é essa:
> ----------------------
> SELECT
> Cq_dd."CodCQ_MOEDA" ,
> Cq_dd."CodCQ_CLASS" ,
> (Cq_insum.Descricao)  as Insumo,
> (Cq_fatpl.Periodo) as Periodo,
> (Cq_Ativ.NomeAtividade),
> (Cq_Ativ.IndiceOutLine),
> (Cq_Ativ.IndicePaterno),
> (sum(Cq_fatpl.QuantidadeNaoAcumulada *
> Cq_dd.QuantInsumo *
> Cq_dd.CustoUnitario)) as Custo
> FROM
> "Cq_fatpl.DB" Cq_fatpl ,
> "Cq_dd.DB" Cq_dd ,
> "Cq_Ativ.DB" Cq_Ativ,
> "Cq_insum.DB" Cq_insum
> WHERE
> (Cq_fatpl.CodCQ_ATIV = Cq_dd.CodCQ_ATIV)
> AND
> (Cq_fatpl.CodCQ_ATIV = Cq_Ativ.CodCQ_ATIV)
> AND
> (Cq_dd.CodCQ_INSUM = Cq_insum.CodCQ_INSUM)
> AND
> (
> (Cq_fatpl."Periodo" = '10')
> AND
> (Cq_dd."CodCQ_CLASS" = '7')
> )
> GROUP BY
> (Cq_Ativ.NomeAtividade), (Cq_Ativ.IndiceOutLine),
> 
> (Cq_Ativ.IndicePaterno), (Cq_insum.Descricao) , Cq_dd."CodCQ_CLASS" ,
>  Cq_dd."CodCQ_MOEDA" , (Cq_fatpl.Periodo) ORDER BY 
> Cq_Ativ."IndiceOutLine", Cq_Ativ."IndicePaterno"
> ----------------------
> ... e ela retorna 140 registros.
> 
> A 2ª consulta é essa:
> ----------------------
> SELECT
> Cq_dd."CodCQ_MOEDA" ,
> Cq_dd."CodCQ_CLASS" ,
> (Cq_insum.Descricao)  as Insumo,
> (Cq_Ativ.NomeAtividade),
> (Cq_Ativ.IndiceOutLine),
> (Cq_Ativ.IndicePaterno),
> (sum(Cq_fatpl.QuantidadeNaoAcumulada *
> Cq_dd.QuantInsumo *
> Cq_dd.CustoUnitario)) as CustoAte
> FROM
> "Cq_fatpl.DB" Cq_fatpl ,
> "Cq_dd.DB" Cq_dd ,
> "Cq_Ativ.DB" Cq_Ativ,
> "Cq_insum.DB" Cq_insum
> WHERE
> (Cq_fatpl.CodCQ_ATIV = Cq_dd.CodCQ_ATIV)
> AND
> (Cq_fatpl.CodCQ_ATIV = Cq_Ativ.CodCQ_ATIV)
> AND
> (Cq_dd.CodCQ_INSUM = Cq_insum.CodCQ_INSUM)
> AND
> (
> (Cq_fatpl."Periodo" <= '10')
> AND
> (Cq_dd."CodCQ_CLASS" = '7')
> )
> GROUP BY
> (Cq_Ativ.NomeAtividade),
> (Cq_Ativ.IndiceOutLine),
> (Cq_Ativ.IndicePaterno),
> (Cq_insum.Descricao) ,
> Cq_dd."CodCQ_CLASS" ,
> Cq_dd."CodCQ_MOEDA"
> ORDER BY
> Cq_Ativ."IndiceOutLine", Cq_Ativ."IndicePaterno"
> ----------------------
> ... e ela retorna 157 registros.
> 
> *************************************
> A diferença das duas é que a 1ª pega "somente" os registros "do" 
> período 10 e a 2ª pega todos os registros "até" o período 10 
> "incluindo" o período 10 ...
> 
> Tem como unir essas duas consultas ?
> Alguém pode me dar uma dica ?
> 
> Desde já muito obrigado.
> 
> Atenciosamente,
> 
> Hélder
> 
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> 
> Para ver as mensagens antigas, acesse:
>  http://br.groups.yahoo.com/group/delphi-br/messages
> 
> Para falar com o moderador, envie um e-mail para:
>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> 
> Links do Yahoo! Grupos
> 
> 
> 
------- End of Original Message -------



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a