UNION com dois quot;ORDER BYquot;
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
Curtidas 0
Respostas
Sremulador
26/10/2004
Amigo você deve utilizar o order by somente no final da union pois ele vai unir tudo mesmo...
GOSTEI 0