Fórum SUPER AJUDA SQL !!!!!!!!!!!!!!!!1 #169301

14/07/2003

0

Estou com um problema, fiz esta instrução abaixo para visualizar
a quantidade de peça que sairam em um determinado período.
--------------------------------------------------------
SELECT SUM(QTD_PECAS) AS QTD_PECAS, Descricao_Peca
FROM ITENSORDEMSERVICOITENS
GROUP BY Descricao_Peca
HAVING ITENSORDEMSERVICO.Cod_OrdemServico IN
(SELECT ORDEMSERVICO.Numero_OS FROM ORDEMSERVICO WHERE
ORDEMSERVICO.Status_OS = STATUS AND ORDEMSERVICO.Data_OS >= :DTINICIAL
AND ORDEMSERVICO.Data_OS <= :DTFINAL)
---------------------------------------------------------
São passados 03 parâmetros,
1 - STATUS( Quitadas, Em Aberto )
2 - DTINICIAL( Data Inicial )
3 - DTFINAL( Data Final )

O probelema, quando solicitado as peças que saíram nas
Ordem de serviço ´Quitadas´, esta instrução traz todas as
peças que existem na tabela ´ItensOs´, Já troquei o sinal
de ´IN´ para ´=´ mais é retornado um erro no SQL dizendo
que são multiplas linas selecionadas e não pode ser Exibido.

Por favor gostaria de saber se existe alguma maneira de
solucionar este problema !!!!!!!!

Marcelo Andrade


Marceloandrade

Marceloandrade

Responder

Posts

14/07/2003

4_olho

Não sou muito bom em SQL. Na verdade, sou péssimo, mas observei :
SELECT SUM(QTD_PECAS) AS QTD_PECAS, Descricao_Peca


usr o mesmo nome QTD_pecas para a soma de QTD_pecas, não lhe dá problemas ?

GROUP BY Descricao_Peca

aqui não falta o qtd_pecas ?

ORDEMSERVICO.Status_OS = STATUS AND

Faltam o s dois pontos antes de Status (:STATUS), afinal ele é parâmetro

AND ORDEMSERVICO.Data_OS >= :DTINICIAL AND ORDEMSERVICO.Data_OS <= :DTFINAL)

Tente substituir por BETWEEN ...


Responder

Gostei + 0

14/07/2003

Demian Soares

no mais tudo certo.. apenas ratificando que depois do sum(**) ele pode repetir o nome do campo sem problemas mesmo que ele traga todos os campos, ele traria esse campo virtual.. precedido pelo nome da query...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar