Re: [delphi-br] SQL muito complexa, unir 2 select

2005-01-29 Por tôpico Arthur


voce pode usar o left join .
  - Original Message - 
  From: Hélder Rodrigues 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, January 28, 2005 10:34 AM
  Subject: Re: [delphi-br] SQL muito complexa, unir 2 select


  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]



Yahoo! Grupos, um serviço oferecido por: 
  PUBLICIDADE

   


--
  Links do Yahoo! Grupos

a.. Para visitar o site do seu grupo na web, acesse

[delphi-br] SQL muito complexa, unir 2 select

2005-01-28 Por tôpico Hélder Rodrigues

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

* 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

 





Re: [delphi-br] SQL muito complexa, unir 2 select

2005-01-28 Por tôpico [EMAIL PROTECTED]

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

 





[delphi-br] SQL muito complexa, unir 2 select (2) !!!

2005-01-28 Por tôpico Hélder Rodrigues

(continuação da minha mensagem anterior)

Oi pessoal ...

Na verdade eu queria ter em uma mesma consulta, duas colunas:

- Uma com o resultado do Custo no período 10;

- Outra com o resulta do Custo até o período 10, incluindo o período 10;

-

Será que alguém pode me dar uma dica ? Já vi que a cláusula UNION não
serve ...
dá pra fazer isso usando JOIN ??

Novamente, 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

* 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

 





Re: [delphi-br] SQL muito complexa, unir 2 select

2005-01-28 Por tôpico Hélder Rodrigues

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

 





Re: [delphi-br] SQL muito complexa, unir 2 select

2005-01-28 Por tôpico Nielsen Cassiano Simões

Você pode fazer isso com UNION (já que os campos retornados são os
mesmos) da seguinte forma:

Primeira Consulta
UNION Segunda Consulta

Nielsen


On Fri, 28 Jan 2005 10:39:18 -0200, Hélder Rodrigues
[EMAIL PROTECTED] wrote:
 
 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

* 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

 





Re: [delphi-br] SQL muito complexa, unir 2 select

2005-01-28 Por tôpico Hélder Rodrigues

Oi Nielsen ... obrigado por responder ...

Mas os campos retornados não são os mesmos ... na segunda pesquisa não
tem o campo período ... pois eu quero saber o total geral (where 
periodo = 10)
independente do total no período 1,2,3 ... etc ...

Tem como fazer isso ?

Obrigado.

Att.

Hélder

Nielsen Cassiano Simões escreveu:

Você pode fazer isso com UNION (já que os campos retornados são os
mesmos) da seguinte forma:

Primeira Consulta
UNION Segunda Consulta

Nielsen


On Fri, 28 Jan 2005 10:39:18 -0200, Hélder Rodrigues
[EMAIL PROTECTED] wrote:
  

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

* 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

 





Re: [delphi-br] SQL muito complexa, unir 2 select (2) !!!

2005-01-28 Por tôpico [EMAIL PROTECTED]

Opa,

vc pode adaptar. Exemplo

SELECT PRODUTO, SUM(CUSTO) AS CUSTO_PERIODO_10, 0.00 AS CUSTO_ATE_PERIODO_10
FROM TABELATAL
WHERE DATA BETWEEN :DATAINI AND :DATAFIN

UNION ALL

SELECT PRODUTO, 0.00, SUM(CUSTO)
FROM TABELATAL
WHERE DATA = :DATAFIN
GROUP BY 1
ORDER BY 1

Espero que ajude.

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 11:26:43 -0200
Subject: [delphi-br] SQL muito complexa, unir 2 select (2) !!!

 (continuação da minha mensagem anterior)
 
 Oi pessoal ...
 
 Na verdade eu queria ter em uma mesma consulta, duas colunas:
 
 - Uma com o resultado do Custo no período 10;
 
 - Outra com o resulta do Custo até o período 10, incluindo o 
 período 10;
 
 -
 
 Será que alguém pode me dar uma dica ? Já vi que a cláusula UNION não
 serve ...
 dá pra fazer isso usando JOIN ??
 
 Novamente, 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

 





Re: [delphi-br] SQL muito complexa, unir 2 select

2005-01-28 Por tôpico Nielsen Cassiano Simões

  Então faça o seguinte:

  Se a segunda consulta não tem o campo período, então crie, na mesma
posição na segunda consulta, uma expressão do tipo 0 AS Periodo,
para que os campos possão bater. O importante é que o mesmo número de
campos esteja presente nas duas consultas, e os campos de cada
consulta sejam equivalentes (do mesmo tipo). Aí seu UNION vai
funcionar. Se existir mais algum campo em qualquer uma das consultas
que não tenha na outra, faça da mesma forma, até que as duas tenham
estruturas equivalentes.


  Nielsen


On Fri, 28 Jan 2005 11:46:46 -0200, Hélder Rodrigues
[EMAIL PROTECTED] wrote:
 
 Oi Nielsen ... obrigado por responder ...
 
 Mas os campos retornados não são os mesmos ... na segunda pesquisa não
 tem o campo período ... pois eu quero saber o total geral (where
 periodo = 10)
 independente do total no período 1,2,3 ... etc ...
 
 Tem como fazer isso ?
 
 Obrigado.
 
 Att.
 
 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

* 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