Array
(
)

Dois Selects

Output
   - 07 ago 2007

blz galera?!
To enrolado num select aki q ta de arrebenta hein! segue:

#Código

SELECT SUM(QTDE) AS QTDE, 
SUM(QTDE*VLRUNITARIO- VLRDESCONTO) AS TOTAL, ITENSMOVPRODUTOS.ID_PRODUTOS
FROM ITENSMOVPRODUTOS INNER JOIN MOVPRODUTOS ON 
MOVPRODUTOS.ID_MOVPRODUTOS = ITENSMOVPRODUTOS.ID_MOVPRODUTOS 
WHERE ITENSMOVPRODUTOS.STATUS = 1 AND 
MOVPRODUTOS.DATA BETWEEN ´2007-08-07´ AND ´2007-08-07 23:59:59´ 
GROUP BY ITENSMOVPRODUTOS.ID_GRUPOPRODUTOS, ITENSMOVPRODUTOS.ID_PRODUTOS


neste select ele me traz 3 colunas (QTDE - TOTAL - ID_PRODUTOS)
*********

#Código
SELECT SUM(QTDE*VLRUNITARIO- VLRDESCONTO) AS TOTAL, ITENSMOVPRODUTOS.ID_GRUPOPRODUTOS
FROM ITENSMOVPRODUTOS INNER JOIN MOVPRODUTOS ON 
MOVPRODUTOS.ID_MOVPRODUTOS = ITENSMOVPRODUTOS.ID_MOVPRODUTOS 
WHERE ITENSMOVPRODUTOS.STATUS = 1 AND 
MOVPRODUTOS.DATA BETWEEN ´2007-08-07´ AND ´2007-08-07 23:59:59´ 
GROUP BY ITENSMOVPRODUTOS.ID_GRUPOPRODUTOS


neste select ele me traz 2 colunas (TOTAL - ID_GRUPOPRODUTOS)

eu qria ´unir´ estes dois selects, deixa - los num select so.... Alguma dica?
*********

Emerson
   - 07 ago 2007

diretamente creio que não, pois numa você agrupa pelo código do produto e na outra você agrupa pelo grupo do produto. o que você pode fazer é uma sub-select.
#Código

SELECT
  SUM(IMP.QTDE) AS QTDE,
  SUM(IMP.QTDE*(IMP.VLRUNITARIO - IMP.VLRDESCONTO)) AS TOTAL_PRODUTO,
  IMP.ID_PRODUTOS,
  IMP.ID_GRUPOPRODUTOS,
  (SELECT
     SUM(IMP2.QTDE*(IMP2.VLRUNITARIO - IMP2.VLRDESCONTO))
   FROM
     ITENSMOVPRODUTOS IMP2
   INNER JOIN
     MOVPRODUTOS MP2 ON MP2.ID_MOVPRODUTOS = IMP2.ID_MOVPRODUTOS
   WHERE
     IMP2.STATUS = 1 AND
     MP2.DATA BETWEEN ´2007-08-07´ AND ´2007-08-07 23:59:59´ AND
     IMP2.ID_GRUPOPRODUTOS = IMP.ID_GRUPOPRODUTOS) TOTAL_GRUPO
FROM
  ITENSMOVPRODUTOS IMP
INNER JOIN
  MOVPRODUTOS MP ON MP.ID_MOVPRODUTOS = IMP.ID_MOVPRODUTOS
WHERE
  IMP.STATUS = 1 AND
  MP.DATA BETWEEN ´2007-08-07´ AND ´2007-08-07 23:59:59´
GROUP BY
  IMP.ID_GRUPOPRODUTOS, IMP.ID_PRODUTOS


Output
   - 08 ago 2007

Opa boa kra ...
+ uma vez vlw pela ajuda ...

naum qrendo se aproveitar, mais daria pra dar um SUM(IMP.QTDE*(IMP.VLRUNITARIO - IMP.VLRDESCONTO)) AS TOTAL_FORMA neste msm select so q este sum agrupando por IMP.FORMAPGTO ???

Emerson
   - 08 ago 2007

só dará certo se você puser IMP.FORMAPGTO no agrupamento principal, mas isso implicará na alteração dos valores exibidos antes desta alteração. talvez seja melhor executar as instruções separadamente, visto que são informações distintas.
#Código

SELECT
  SUM(IMP.QTDE) AS QTDE,
  SUM(IMP.QTDE*(IMP.VLRUNITARIO - IMP.VLRDESCONTO)) AS TOTAL_PRODUTO,
  IMP.ID_PRODUTOS,
  IMP.ID_GRUPOPRODUTOS,
  IMP.FORMAPGTO,
  (SELECT
     SUM(IMP2.QTDE*(IMP2.VLRUNITARIO - IMP2.VLRDESCONTO))
   FROM
     ITENSMOVPRODUTOS IMP2
   INNER JOIN
     MOVPRODUTOS MP2 ON MP2.ID_MOVPRODUTOS = IMP2.ID_MOVPRODUTOS
   WHERE
     IMP2.STATUS = 1 AND
     MP2.DATA BETWEEN ´2007-08-07´ AND ´2007-08-07 23:59:59´ AND
     IMP2.ID_GRUPOPRODUTOS = IMP.ID_GRUPOPRODUTOS) TOTAL_GRUPO,
  (SELECT
     SUM(IMP2.QTDE*(IMP2.VLRUNITARIO - IMP2.VLRDESCONTO))
   FROM
     ITENSMOVPRODUTOS IMP2
   INNER JOIN
     MOVPRODUTOS MP2 ON MP2.ID_MOVPRODUTOS = IMP2.ID_MOVPRODUTOS
   WHERE
     IMP2.STATUS = 1 AND
     MP2.DATA BETWEEN ´2007-08-07´ AND ´2007-08-07 23:59:59´ AND
     IMP2.FORMAPGTO = IMP.FORMAPGTO) TOTAL_FORMA
FROM
  ITENSMOVPRODUTOS IMP
INNER JOIN
  MOVPRODUTOS MP ON MP.ID_MOVPRODUTOS = IMP.ID_MOVPRODUTOS
WHERE
  IMP.STATUS = 1 AND
  MP.DATA BETWEEN ´2007-08-07´ AND ´2007-08-07 23:59:59´
GROUP BY
  IMP.ID_GRUPOPRODUTOS, IMP.FORMAPGTO, IMP.ID_PRODUTOS


Output
   - 08 ago 2007

ow emerson.en
vlw kra ... exatamente isto q eu qria ...
Forte Abraço amigo ...