Oi Leandro ... Obrigado por responder a minha dúvida ... mas eu vi na ajuda do Delphi ... que para usar UNION ... a estrutura das duas consultas tem que ser a mesma ... e no caso não vai dar pra usar ...
... e no caso, union "junta" o resultado das duas consultas uma embaixo da outra ... e na verdade eu estava querendo é ter o resultado de 2 colunas com um "where" diferente para uma e para outra .... ... mandei um segundo email com o título "SQL muito complexa, unir 2 select (2) !!!" ... dá uma olhada ... às vezes vc consegue me ajudar ... Novamente, obrigado. Att. Hélder --------------------- [EMAIL PROTECTED] escreveu: >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 ------- > > > > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< 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