Fórum Update avançado contendo case/inner join/group by #528484
12/08/2015
0
multiple rows in singleton select.
E não estou conseguindo passar disso podem me ajudar??
UPDATE PRODUTO
SET PRODUTO.grupo2 = (SELECT case
WHEN (((ESTOQUELOTE.VALIDADE - CURRENT_DATE) <= 180) and (((ESTOQUELOTE.VALIDADE - CURRENT_DATE) > 0)) )
THEN '2'
WHEN ((ESTOQUELOTE.VALIDADE - CURRENT_DATE) > 0) and
((case when( ((sum(case when( (inf.NATOPERACAO in ('251','378','588','579','316','445','546')))
then ((inf.QTDE)* 1)
else ((inf.QTDE) * (0))
end)
+
sum(case when( (inf.NATOPERACAO in ('23','592','133','589')))
then ((inf.QTDE)* -1)
else ((inf.QTDE) * (0))
end) )/ 365) <= '0')
then '0'
else CAST(ROUND(( PRODUTO.ESTATUAL / ((sum(case when( (inf.NATOPERACAO in ('251','378','588','579','316','445','546')))
then ((inf.QTDE)* 1)
else ((inf.QTDE) * (0))
end)
+
sum(case when( (inf.NATOPERACAO in ('23','592','133','589')))
then ((inf.QTDE)* -1)
else ((inf.QTDE) * (0))
end) )/ 365)) ,2) AS DECIMAL(12,2)) end) >= 360)
THEN '3'
WHEN ((ESTOQUELOTE.VALIDADE - CURRENT_DATE) > 0) and
(cores.CODIGO not in ('1'))
THEN '6'
ELSE '1' END
FROM inf
INNER join Produto on produto.codbarra = inf.codbarra
INNER JOIN CORES ON CORES.codigo = PRODUTO.codigo_cor
INNER JOIN ESTOQUELOTE ON ESTOQUELOTE.produto = inf.codprod
where (INF.DTEMISSAO >= '10.08.2014' and INF.DTEMISSAO <= '10.08.2015')
group by inf.codbarra, produto.CODBARRA, PRODUTO.DESCRICAO, ESTOQUELOTE.VALIDADE,PRODUTO.ESTATUAL, ESTOQUELOTE.QTDE,
ESTOQUELOTE.LOTE, produto.DTVENDA, cores.CODIGO)
Luis
Curtir tópico
+ 0Posts
13/08/2015
Luis
Gostei + 0
18/08/2015
Luis
Gostei + 0
18/08/2015
Alisson Santos
Executa ele separado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)