Fórum UNION com dois quot;ORDER BYquot; #47714
26/10/2004
0
Tenho a instrucao onde uso UNION e preciso de duas ordens.... isso é possível?
A intenção é juntar os MAIS vendidos em ordem de quantidade decrescente e os NÃO vendidos em ordem alfabética.
Eu estou tentando mas dá erro
SELECT FIRST 3 P.DESCRICAO,
SUM(I.QUANTIDADE) AS SOMAQUANTIDADE,
SUM(I.VALOR) AS SOMAVALOR
FROM VENDA_ITENS I
INNER JOIN VENDA V ON (V.CODIGOVENDA=I.CODIGOVENDA)
INNER JOIN PRODUTO P ON (P.CODIGOPRODUTO = I.CODIGOPRODUTO)
WHERE (V.DATA BETWEEN ´10/01/2004´ AND ´10/31/2004´)
GROUP BY P.DESCRICAO
ORDER BY 2 DESCENDING
UNION ALL
SELECT DESCRICAO,
0.000 SOMAQUANTIDADE,
0.000 SOMAVALOR
FROM PRODUTO
WHERE NOT CODIGOPRODUTO IN
(SELECT DISTINCT I.CODIGOPRODUTO
FROM VENDA_ITENS I
INNER JOIN VENDA V ON (V.CODIGOVENDA = I.CODIGOVENDA)
WHERE V.DATA BETWEEN ´10/01/2004´ AND ´10/31/2004´)
ORDER BY 1
A intenção é juntar os MAIS vendidos em ordem de quantidade decrescente e os NÃO vendidos em ordem alfabética.
Eu estou tentando mas dá erro
SELECT FIRST 3 P.DESCRICAO,
SUM(I.QUANTIDADE) AS SOMAQUANTIDADE,
SUM(I.VALOR) AS SOMAVALOR
FROM VENDA_ITENS I
INNER JOIN VENDA V ON (V.CODIGOVENDA=I.CODIGOVENDA)
INNER JOIN PRODUTO P ON (P.CODIGOPRODUTO = I.CODIGOPRODUTO)
WHERE (V.DATA BETWEEN ´10/01/2004´ AND ´10/31/2004´)
GROUP BY P.DESCRICAO
ORDER BY 2 DESCENDING
UNION ALL
SELECT DESCRICAO,
0.000 SOMAQUANTIDADE,
0.000 SOMAVALOR
FROM PRODUTO
WHERE NOT CODIGOPRODUTO IN
(SELECT DISTINCT I.CODIGOPRODUTO
FROM VENDA_ITENS I
INNER JOIN VENDA V ON (V.CODIGOVENDA = I.CODIGOVENDA)
WHERE V.DATA BETWEEN ´10/01/2004´ AND ´10/31/2004´)
ORDER BY 1
Lhs
Curtir tópico
+ 0
Responder
Posts
26/10/2004
Sremulador
Amigo você deve utilizar o order by somente no final da union pois ele vai unir tudo mesmo...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)