Funcao Case em Stored Procedure, qual a sintaxe?

SQL Server

23/09/2006

Ola.

Alguem tem uma dica de como eu posso solucionar o seguinte caso.


Tenho 12 campos que referenciam aos 12 meses do ano (VLR1..Vlr12) numeric (16,6)

Preciso atribuir o valor da venda ao seu referido mes(no caso o campo).

obtenho o mes da venda: set @IMES = month(@NOTA_DATA)

como faço pra lancar no campo correspondente?


 case @IMES = 
  when 1 then set VLR1 = @VALOR
  when 2 then set VLR2 = @VALOR
 end



Seria algo assim?

Mas isso nao esta funcionando
O case nao esta sendo reconhecido na SP.


grato.

[]´s




:roll:


Macario

Macario

Curtidas 0

Respostas

Psergio.p

Psergio.p

23/09/2006

Caro amigo, não entendi bem o que você precisa, poderia explicar melhor e postar a estrutura da sua tabela?


GOSTEI 0
Raserafim

Raserafim

23/09/2006

tente algo neste sentido:
 case
  when @IMES = 1 then (update nometabela set VLR1 = @VALOR)
  when @IMES = 2 then (update nometabela set VLR2 = @VALOR)
  ...
 end



GOSTEI 0
Macario

Macario

23/09/2006

Caro amigo, não entendi bem o que você precisa, poderia explicar melhor e postar a estrutura da sua tabela?



Ola.

Eu estou gerando um relatorio de vendas anuais.

Vou citar um exemplo basico que nao reflete todo o codigo da SP em questao.


Dentro da SP faco o seguite.

declare CURSOR_TEMP cursor local fast_forward for
  select CLIENTE, NOTA, DATA, VALOR from TABNOTAS



Que me retorna o seguinte:
CLIENTE---->NOTA---->DATA---------VALOR
0000001---->01010--->10/07/2006--100
0000001---->02010--->10/08/2006--200
0000002---->03010--->11/09/2006--300



Tenho 12 variaveis para poder ´jogar´ o valor da nota no mes de referencia(campo DATA)

Por exemplo a nota 02010 o valor vai para a
[b:776dabc4e9]
if(@MES= 8)
set @VLR8 = VALOR
[/b:776dabc4e9]
Entao depois eu faco um update na tabela com o valor no mes de venda.

O que esta acontecendo e que dentro da SP estou testando o mes atravez de 12 [b:776dabc4e9]IF´s[/b:776dabc4e9]

Acredito que exista uma maneira mais pratica e logica para esta situacao.


espero ter esclarecido melhor minha necessidade.


GOSTEI 0
Psergio.p

Psergio.p

23/09/2006

Você já está usando if então?


GOSTEI 0
POSTAR