Ir para conteúdo

Duxino

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Duxino

  1. Duxino

    Problema com sintax

    Estou tentando criar essa Function com base as informações que obtive do manual do MySQL, sei que deve ser algo bobo e idiota entretanto não consigo enxergar onde está o erro. :ph34r: Se alguém puder abrir meus olhos Desde já muito obrigado pessoal! DELIMITER $$ CREATE Function sc_retornarSaldoAnterior(empresa smallint, mes smallint, ano smallint) RETURNS NUMERIC(30,2) BEGIN DECLARE Retorno NUMERIC(30,2); DECLARE SaldoAnterior NUMERIC(30,2) DEFAULT 0; DECLARE Creditos NUMERIC(30,2) DEFAULT 0; DECLARE Debitos NUMERIC(30,2) DEFAULT 0; Declare Periodo NUMERIC(20); begin IF(mes=1) then Set Periodo = '01/01/' + cast(ano as varchar(4)); else Set Periodo = '01/' + right ('00' + rtrim(cast(mes - 0 as varchar(2))), 2) + '/' + cast (ano as varchar(4)); End if End Set SaldoAnterior = ( Select Sum ( Case When Cast('S' As varchar) = 'S' Then Case When T_9.T_C_14_9 < Cast( Periodo As datetime) Then Case When T_9.T_C_21_9 = 'C' Then Coalesce(T_9.T_C_9_9, 0) Else Coalesce( -1 * T_9.T_C_9_9, 0) End Else 0 End Else 0 End ) From G_8 Inner Join T_8_1 On G_8.G_ID_8 = T_8_1.G_ID_8 Inner Join T_9 On T_8_1.T_ID_8_1 = T_9.T_ID_8_1 Where T_8_1.T_C_8_8_1 = 'A' And T_9.G_ID_0 = empresa ); if mes <> -1 begin Set Creditos = ( Select Sum ( Case When Month(T_9.T_C_14_9) = mes Then Coalesce(T_9.T_C_9_9, 0) Else 0 End ) From T_3_5 Left Join T_9 On T_9.T_ID_3_5 = T_3_5.T_ID_3_5 And Year(T_9.T_C_14_9) = ano Where T_3_5.T_C_4_3_5 = 'C' And T_3_5.G_ID_0 = empresa ); Set Debitos = ( Select Sum ( Case When Month(T_9.T_C_14_9) = mes Then Coalesce(T_9.T_C_9_9, 0) Else 0 End ) From T_3_5 Left Join T_9 On T_9.T_ID_3_5 = T_3_5.T_ID_3_5 And Year(T_9.T_C_14_9) = ano Where T_3_5.T_C_4_3_5 = 'D' And T_3_5.G_ID_0 = empresa ); end; Set Retorno = SaldoAnterior + Creditos - Debitos; RETURN Retorno; END $$
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.