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