Advertisement
jotaced

cod itera string seprados por comma

Aug 2nd, 2013
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.36 KB | None | 0 0
  1.     --SE ASOCIAN LOS DATOS PARA CADA PAQUETE SELECCIONADO
  2.         while @paquetes <> ''    
  3.         BEGIN
  4.        
  5.                 IF CHARINDEX(',',@paquetes) > 0
  6.                         SET @paq_codigo = LEFT(@paquetes,CHARINDEX(',',@paquetes) - 1)
  7.                 ELSE
  8.                         SET @paq_codigo = @paquetes
  9.                                
  10.                 --Prestaciones                              
  11.                 INSERT INTO #informe (nombre_paq,codigo, descripcion, cantidad, ppq_valor, vpa_afecto, vpa_exento, vpa_iva, vpa_total)
  12.                 SELECT  DISTINCT
  13.                                 COALESCE(PC.PAQ_CODIGO, '') + ' - ' + COALESCE(PC.PAQ_DESCRIP, '') AS nombre_paq,
  14.                                 CASE   
  15.                                     WHEN (PP.PPQ_CANTIDAD IS NULL AND PP.PPQ_VALOR IS NULL) THEN NULL
  16.                                     ELSE COALESCE(PR.PRS_CODIGO, '') + ' - ' + COALESCE(PP.IAD_CODIGO, '')
  17.                                  END AS codigo,
  18.                                CASE
  19.                                     WHEN (PP.PPQ_CANTIDAD IS NULL AND PP.PPQ_VALOR IS NULL) THEN NULL
  20.                                     ELSE (isnull(PR.PRS_DESCRIP,' ')+'-'+isnull(IA.IAD_DESCRIP, ' '))
  21.                                 END AS descripcion,
  22.                                 PP.PPQ_CANTIDAD AS cantidad,
  23.                                 PP.PPQ_VALOR AS ppq_valor,
  24.                                 VP.VPA_AFECTO AS vpa_afecto,
  25.                                 VP.VPA_EXENTO AS vpa_exento,
  26.                                 VP.VPA_IVA AS vpa_iva,
  27.                                 VP.VPA_TOTAL AS vpa_total
  28.                 FROM    PAQUETES_CONVENIO AS PC (NOLOCK)                          
  29.                 LEFT JOIN PRESTACION_PAQUETE AS PP (NOLOCK) ON PP.PAQ_CODIGO = PC.PAQ_CODIGO
  30.                 LEFT JOIN PRESTACION AS PR (NOLOCK)ON PR.PRS_CORREL = PP.PRS_CORREL
  31.                 LEFT JOIN ITEM_ADICIONAL AS IA (nolock)  ON IA.IAD_CODIGO=PP.IAD_CODIGO
  32.                 LEFT JOIN VALOR_PAQUETE AS VP (NOLOCK) ON VP.PAQ_CODIGO = PC.PAQ_CODIGO                                    
  33.                 WHERE   PC.PAQ_CODIGO = @paq_codigo
  34.                
  35.                 --Productos
  36.                 INSERT INTO #informe (nombre_paq,codigo, descripcion, cantidad, ppq_valor, vpa_afecto, vpa_exento, vpa_iva, vpa_total)
  37.                 SELECT  DISTINCT
  38.                                 COALESCE(PC.PAQ_CODIGO, '') + ' - ' + COALESCE(PC.PAQ_DESCRIP, '') AS nombre_paq,
  39.                                 PRO.PRO_CODIGO AS codigo,
  40.                                 PRO.PRO_NOMBRE AS descripcion,
  41.                                 PROP.PPA_CANTIDAD AS cantidad,
  42.                                 NULL AS ppq_valor,
  43.                                 VP.VPA_AFECTO AS vpa_afecto,
  44.                                 VP.VPA_EXENTO AS vpa_exento,
  45.                                 VP.VPA_IVA AS vpa_iva,
  46.                                 VP.VPA_TOTAL AS vpa_total
  47.                 FROM    PAQUETES_CONVENIO AS PC(NOLOCK)                          
  48.                 LEFT JOIN PRODUCTO_PAQUETE AS PROP (NOLOCK) ON PROP.PAQ_CODIGO = PC.PAQ_CODIGO
  49.                 LEFT JOIN PRODUCTO AS PRO (NOLOCK)ON PRO.PRO_CORREL = PROP.PRO_CORREL  
  50.                 LEFT JOIN VALOR_PAQUETE AS VP (NOLOCK) ON VP.PAQ_CODIGO = PC.PAQ_CODIGO                                    
  51.                 WHERE   PC.PAQ_CODIGO = @paq_codigo
  52.  
  53.                
  54.                --cont. cicl.
  55.                 IF CHARINDEX(',',@paquetes) = 0
  56.                         SET @paquetes = ''
  57.                 ELSE
  58.                         SET @paquetes = RIGHT(@paquetes,LEN(@paquetes) - CHARINDEX(',',@paquetes))
  59.         END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement