Array
(
)

Dois Selects

Output
   - 07 ago 2007

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

#CódigoSELECT 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ódigoSELECT 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ódigoSELECT
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ódigoSELECT
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 ...