Advertisement
Kimossab

[ABD] Freq 14/15 IV C)

Jun 20th, 2017
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.17 KB | None | 0 0
  1. /*IV*/
  2. /*C*/
  3. CREATE PROCEDURE PEstatMed
  4. AS
  5. BEGIN
  6.     DECLARE @EstatMed TABLE (Medicamento VARCHAR(50), Ano INT, Mes INT, Total_Prescricoes INT, Especialidade VARCHAR(50), Valor FLOAT)
  7.    
  8.     DECLARE @NMed INT,
  9.             @Med VARCHAR(50),
  10.             @Ano INT,
  11.             @Mes INT,
  12.             @DATA DATE,
  13.             @TotMed INT,
  14.             @Espec VARCHAR(50),
  15.             @Valor INT,
  16.             @PercVal FLOAT,
  17.    
  18.     DECLARE C_Med CURSOR
  19.     FOR (SELECT m.NM, m.principio_ativo, p.adm_inicio, e.Designacao, COUNT(*) FROM d_Medicamentos m JOIN d_Prescricoes p
  20.         ON m.NM = p.Nmedicamento JOIN d_Medico me
  21.             ON me.NM = m.Nmedico JOIN d_Especialidade e
  22.                 ON e.NE = me.Nespecialidade
  23.         GROUP BY m.NM, e.NE)
  24.     OPEN C_Med
  25.     FETCH FIRST FROM C_Med INTO @NMed, @Med, @DATA, @Espec, @Valor
  26.     WHILE @@FETCH_STATUS = 0
  27.     BEGIN
  28.         SET @Ano = DATEPART(YEAR, @DATA)
  29.         SET @Mes = DATEPART(MONTH, @DATA)
  30.         SET @TotMed = (SELECT COUNT(*) FROM d_Prescricoes WHERE Nmed = @NMed)
  31.         SET @PercVal = 100 * @Valor / @TotMed
  32.        
  33.         INSERT INTO @EstatMed VALUES(@Med, @Ano, @Mes, @TotMed, @Espec, @PercVal)
  34.        
  35.         FETCH NEXT FROM C_Med INTO @NMed, @Med, @DATA, @Espec, @Valor
  36.     END
  37.     CLOSE C_Med
  38.     DEALLOCATE C_Med
  39.    
  40.     SELECT * FROM @EstatMed
  41. END
  42.  
  43. GO
  44.  
  45. EXEC PEstatMed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement