T-SQL 2000 to T-SQL 2008

Hello!

We are updating the database platform from SQL 2000 to SQL 2008. I have problems with Query's that are not compatible and I am not an expert but I really want to learn. This is one of the troubled sentences:

USE [SEPSSIGA]
GO

/****** Object:  StoredProcedure [dbo].[CON_TRANS_REGCOMP]    Script Date: 05/16/2018 21:57:39 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[CON_TRANS_REGCOMP]
	@pPerano Char(4),
	@pPermes Char(2)
AS


DECLARE C_DOCUMENTOS  CURSOR  FOR 
	SELECT DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD TDO,                                                   
		DOCUMENTOS_COMPRAS.SERI_DOCU_DOC NRS,                                                        
		RTRIM(DOCUMENTOS_COMPRAS.NUME_DOCU_DOC) NRD,                                                   
		DOCUMENTOS_COMPRAS.TIPO_FACT_DOC TFA,                                                        
		DOCUMENTOS_COMPRAS.FECH_DOCU_DOC FDC,                                                        
		DOCUMENTOS_COMPRAS.FECH_CAN_DOC FCA,
		DOCUMENTOS_COMPRAS.FECH_INGR_DOC FINGR,

		MAESTRO_DE_CONTRATISTAS.DESC_CONT_CON DES,                                                   
		MAESTRO_DE_CONTRATISTAS.TELE_FONO_CON TEL,                                                   
		SUBSTRING(MAESTRO_DE_CONTRATISTAS.DIRE_CONT_CON,1,50) DIR,                                      
		MAESTRO_DE_CONTRATISTAS.NRO_RUC_CON RUC,                                                     
		rtrim(TDEPARTAMENTOS.NOMB_DPTO_DPT) DPT,                                                     
		DOCUMENTOS_COMPRAS.MONT_DOCU_DOC MTO,                                                        
		DOCUMENTOS_COMPRAS.MONT_MIGV_DOC IGV,                                                        
		DOCUMENTOS_COMPRAS.TIPO_CAMB_DOC TCA,
		DOCUMENTOS_COMPRAS.MNTO_OTRO_DOC MOT,   
         DOCUMENTOS_COMPRAS.MONT_IES_DOC IES,   
         DOCUMENTOS_COMPRAS.MONT_RNTA_DOC RTA,   
         DOCUMENTOS_COMPRAS.MONT_DOCU_DOC TOT,   
         DOCUMENTOS_COMPRAS.COMP_PAGO_DOC PAG,   
         DOCUMENTOS_COMPRAS.NUME_SIAF_DOC SIA,
		(SELECT TOP 1 FECH_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	FECH_CONST_DEP,
		(SELECT TOP 1 NUME_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	NUME_CONST_DEP,
		 DOCUMENTOS_ORI_MOD.FECH_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.SERI_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.NUME_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.TIPO_DOCU_TPD,
		 DOCUMENTOS_COMPRAS.TIPO_REFE_DOC,
		 DOCUMENTOS_COMPRAS.NUME_REFE_DOC    	                                                        
	FROM MAESTRO_DE_CONTRATISTAS, DOCUMENTOS_COMPRAS,TDEPARTAMENTOS, DOCUMENTOS_ORI_MOD
	WHERE 
             YEAR(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)=@pPerano AND 
             MONTH(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)=@pPermes AND
	      ( DOCUMENTOS_COMPRAS.TIPO_REFE_DOC <> '932' ) AND   
			( DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                         			                    FROM TIPO_DOCUMENTOS  
			                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) ) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_CONT_CON = SUBSTRING(DOCUMENTOS_COMPRAS.CODI_ANEX_ANX,2,8)) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_DEPT_CON = TDEPARTAMENTOS.CODI_DEPA_DPT ) AND
			( DOCUMENTOS_COMPRAS.PERI_ANNO_DOC *= DOCUMENTOS_ORI_MOD.PERI_ANNO_DOC ) AND
			( DOCUMENTOS_COMPRAS.CORR_DOCU_DOC *= DOCUMENTOS_ORI_MOD.CORR_DOCU_DOC )               
UNION (                                                                                             
	SELECT DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD TDO,                                                   
		DOCUMENTOS_COMPRAS.SERI_DOCU_DOC NRS,                                                        
		RTRIM(DOCUMENTOS_COMPRAS.NUME_DOCU_DOC) NRD,                                                   
		DOCUMENTOS_COMPRAS.TIPO_FACT_DOC TFA,                                                        
		DOCUMENTOS_COMPRAS.FECH_DOCU_DOC FDC,                                                        
		DOCUMENTOS_COMPRAS.FECH_CAN_DOC FCA,
		DOCUMENTOS_COMPRAS.FECH_INGR_DOC FINGR,

		MAESTRO_DE_CONTRATISTAS.DESC_CONT_CON DES,                                                   
		MAESTRO_DE_CONTRATISTAS.TELE_FONO_CON TEL,                                                   
		SUBSTRING(MAESTRO_DE_CONTRATISTAS.DIRE_CONT_CON,1,50) DIR,                                      
		MAESTRO_DE_CONTRATISTAS.NRO_RUC_CON RUC,                                                     
		rtrim(TDEPARTAMENTOS.NOMB_DPTO_DPT) DPT,                                                     
		DOCUMENTOS_COMPRAS.MONT_DOCU_DOC MTO,                                                        
		DOCUMENTOS_COMPRAS.MONT_MIGV_DOC IGV,                                                        
		DOCUMENTOS_COMPRAS.TIPO_CAMB_DOC TCA,
		DOCUMENTOS_COMPRAS.MNTO_OTRO_DOC MOT,   
         DOCUMENTOS_COMPRAS.MONT_IES_DOC IES,   
         DOCUMENTOS_COMPRAS.MONT_RNTA_DOC RTA,   
         DOCUMENTOS_COMPRAS.MONT_DOCU_DOC TOT,   
--         DOCUMENTOS_COMPRAS.COMP_PAGO_DOC PAG,            
--         DOCUMENTOS_COMPRAS.NUME_SIAF_DOC SIA,
         ISNULL(COMPROBANTE_PAGO.SECU_COMP_COP,' ') PAG,   
       	ISNULL(COMPROBANTE_PAGO.NUME_SIAF_COP,' ') SIA,
		(SELECT TOP 1 FECH_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	FECH_CONST_DEP,
		(SELECT TOP 1 NUME_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	NUME_CONST_DEP,
		 DOCUMENTOS_ORI_MOD.FECH_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.SERI_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.NUME_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.TIPO_DOCU_TPD,
		 DOCUMENTOS_COMPRAS.TIPO_REFE_DOC,
		 DOCUMENTOS_COMPRAS.NUME_REFE_DOC    	                                                        		     	                                                        
	FROM MAESTRO_DE_CONTRATISTAS, DOCUMENTOS_COMPRAS,TDEPARTAMENTOS, DOCUMENTOS_ORI_MOD 
			,LIQUIDACION, COMPROBANTE_PAGO
	WHERE 
--             YEAR(DOCUMENTOS_COMPRAS.FECH_INGR_DOC)=@pPerano AND 
--             MONTH(DOCUMENTOS_COMPRAS.FECH_INGR_DOC)=@pPermes AND
             YEAR(LIQUIDACION.FECH_LIQU_LIQ)=@pPerano AND 
             MONTH(LIQUIDACION.FECH_LIQU_LIQ)=@pPermes AND
	      ( DOCUMENTOS_COMPRAS.TIPO_REFE_DOC = '932' ) AND   
			( DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                         			                    FROM TIPO_DOCUMENTOS  
			                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) ) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_CONT_CON = SUBSTRING(DOCUMENTOS_COMPRAS.CODI_ANEX_ANX,2,8)) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_DEPT_CON *= TDEPARTAMENTOS.CODI_DEPA_DPT ) AND
			( DOCUMENTOS_COMPRAS.PERI_ANNO_DOC *= DOCUMENTOS_ORI_MOD.PERI_ANNO_DOC ) AND
			( DOCUMENTOS_COMPRAS.CORR_DOCU_DOC *= DOCUMENTOS_ORI_MOD.CORR_DOCU_DOC ) AND
			
			( DOCUMENTOS_COMPRAS.PERI_ANNO_DOC = LIQUIDACION.PERI_ANNO_LIQ ) AND
			( DOCUMENTOS_COMPRAS.NUME_REFE_DOC = LIQUIDACION.NUME_LIQU_LIQ ) AND
			( LIQUIDACION.ANNO_COMP_COP *= COMPROBANTE_PAGO.ANNO_EJEC_EJE ) AND			
			( LIQUIDACION.NUME_COMP_COP *= COMPROBANTE_PAGO.SECU_COMP_COP ) AND
			( COMPROBANTE_PAGO.ESTA_COMP_COP <> '*' )

      )
UNION (                                                                                             
SELECT   	RENDICION_CAJA_CHICA.TIPO_DOCU_TPD TDO,                                                
         	RENDICION_CAJA_CHICA.SERI_DOCU_DOC NRS,                                                
		RIGHT('000000000000' + LTRIM(rtrim(RENDICION_CAJA_CHICA.NUME_DOCU_DOC)),12)  NRD ,     
			( CASE RENDICION_CAJA_CHICA.TIPO_DOCU_TPD WHEN '027' THEN '006' 
			ELSE  
			  (CASE ISNULL(RENDICION_CAJA_CHICA.MONT_MIGV_DOC,0) WHEN 0 THEN '005'
				ELSE '002' END) END)TFA,	
         	RENDICION_CAJA_CHICA.FECH_DOCU_DOC FDC,                                                
		RENDICION_CAJA_CHICA.FECH_DOCU_DOC FCA,
		RENDICION_CAJA_CHICA.FECH_DOCU_DOC FINGR,
                                  
		MAESTRO_DE_CONTRATISTAS.DESC_CONT_CON DES,                                                    
		MAESTRO_DE_CONTRATISTAS.TELE_FONO_CON TEL,                                                    
		SUBSTRING(MAESTRO_DE_CONTRATISTAS.DIRE_CONT_CON,1,50) DIR,                                       
         	RENDICION_CAJA_CHICA.NUME_NRUC_PRO RUC,                                                
		'15'  AS DPT,                                                                                    
		(ISNULL(RENDICION_CAJA_CHICA.MONT_DOCU_DOC,0) - ISNULL(RENDICION_CAJA_CHICA.MONT_MIGV_DOC,0) - ISNULL(RENDICION_CAJA_CHICA.nMTO_OTRO_DOC,0)) MTO,
         ISNULL(RENDICION_CAJA_CHICA.MONT_MIGV_DOC,0) IGV,                                                
          	1  AS TCA,
		 ISNULL(RENDICION_CAJA_CHICA.nMTO_OTRO_DOC,0) MOT,   
	        0 IES,   
         	0 RTA,   
        (ISNULL(RENDICION_CAJA_CHICA.MONT_DOCU_DOC,0) - ISNULL(RENDICION_CAJA_CHICA.MONT_MIGV_DOC,0) - ISNULL(RENDICION_CAJA_CHICA.nMTO_OTRO_DOC,0)) TOT,   
                ISNULL(COMPROBANTE_PAGO.SECU_COMP_COP,' ') PAG,   
         	ISNULL(COMPROBANTE_PAGO.NUME_SIAF_COP,' ') SIA,
	NULL AS FECH_CONST_DEP,
	NULL AS NUME_CONST_DEP,
	NULL AS FECH_DOCU_ORI,
	NULL AS SERI_DOCU_ORI,
	NULL AS NUME_DOCU_ORI,
	NULL AS TIPO_DOCU_TPD,    	                                                        
 	'920' AS TIPO_REFE_DOC,
	RENDICION_CAJA_CHICA.NUME_REEM_REE AS NUME_REFE_DOC    	                                                        

    FROM RENDICION_CAJA_CHICA, MAESTRO_DE_CONTRATISTAS, SOLICITUD_REEMBOLSO
    ,CABECERA_MOV
    ,COMPROBANTE_PAGO                                            

   WHERE RENDICION_CAJA_CHICA.NUME_NRUC_PRO = MAESTRO_DE_CONTRATISTAS.NRO_RUC_CON AND  
		   RENDICION_CAJA_CHICA.PERI_ANNO_DOC = SOLICITUD_REEMBOLSO.PERI_ANNO_REE AND  
		   RENDICION_CAJA_CHICA.REFE_CAJA_CHI = SOLICITUD_REEMBOLSO.NUME_CCHI_CHI AND 
		   RENDICION_CAJA_CHICA.NUME_REEM_REE = SOLICITUD_REEMBOLSO.NUME_REEM_REE AND 
                   SOLICITUD_REEMBOLSO.PERI_ANNO_REE =  @pPerano AND 
		   SOLICITUD_REEMBOLSO.PERI_ANNO_REE=RTRIM(YEAR(CABECERA_MOV.FECH_DEV_CAB)) AND
                   SOLICITUD_REEMBOLSO.NUM_REGI_CAB=CABECERA_MOV.NUM_REGI_CAB AND
                   MONTH(CABECERA_MOV.FECH_DEV_CAB)=@pPermes AND
                   COMPROBANTE_PAGO.PERI_ANNO_COP = @pPerano  AND    
                   CABECERA_MOV.NUM_REGI_CAB *= COMPROBANTE_PAGO.NUM_REGI_CAB AND
(CABECERA_MOV.TIPO_REFE_CAB+CABECERA_MOV.NUM_REFE_CAB)*=(COMPROBANTE_PAGO.TIPO_DOCU_COP+COMPROBANTE_PAGO.NUME_DOCU_COP) AND
                   COMPROBANTE_PAGO.ESTA_COMP_COP <> '*' AND                                 

	( RENDICION_CAJA_CHICA.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                      			                    FROM TIPO_DOCUMENTOS  
	                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) ) AND
         ( RENDICION_CAJA_CHICA.ESTA_DOCU_DOC = 'R'	)                                            
)                                                                                                   
UNION (                                                                                             
SELECT RENDICION_REQ_FONDOS.TIPO_DOCU_TPD TDO,                                                  
		RENDICION_REQ_FONDOS.SERI_DOCU_RRE NRS,                                                      
		RIGHT('000000000000' + LTRIM(rtrim(RENDICION_REQ_FONDOS.NUME_DOCU_RRE)),12)  NRD ,              
         (CASE ISNULL(RENDICION_REQ_FONDOS.MONT_MIGV_RRE,0)
			WHEN 0 THEN '002'
			ELSE '002' END) TFA,                   
         	RENDICION_REQ_FONDOS.FECH_DOCU_RRE FDC,                                                
         	RENDICION_REQ_FONDOS.FECH_DOCU_RRE FCA,
         	RENDICION_REQ_FONDOS.FECH_DOCU_RRE FINGR,
		PROVEEDORES_CAJA_CHICA.RAZO_SOCI_PRO DES,                                                    
		PROVEEDORES_CAJA_CHICA.NUME_TELE_PRO TEL,                                                    
		SUBSTRING(PROVEEDORES_CAJA_CHICA.DIRE_PROV_PRO,1,50) DIR,                                       
         	RENDICION_REQ_FONDOS.NUME_NRUC_PRO RUC,                                                
		'15'  AS DPT,                                                                                    
         	RENDICION_REQ_FONDOS.MONT_DOCU_RRE MTO,                                                
         	RENDICION_REQ_FONDOS.MONT_MIGV_RRE IGV,                                                
          	1  AS TCA,
		0 MOT,   
	        0 IES,   
         	0 RTA,   
         	0 TOT,   
         	' ' PAG,   
         	' ' SIA,
			NULL AS FECH_CONST_DEP,
			NULL AS NUME_CONST_DEP,                                                                                
			NULL AS FECH_DOCU_ORI,
			NULL AS SERI_DOCU_ORI,
			NULL AS NUME_DOCU_ORI,
			NULL AS TIPO_DOCU_TPD,
			NULL AS TIPO_REFE_DOC,
			NULL AS NUME_REFE_DOC    	                                                        
FROM RENDICION_REQ_FONDOS,PROVEEDORES_CAJA_CHICA                                            
WHERE RENDICION_REQ_FONDOS.NUME_NRUC_PRO   = PROVEEDORES_CAJA_CHICA.NUME_NRUC_PRO AND    
         ( RENDICION_REQ_FONDOS.PERI_ANNO_RRE = @pPerano ) AND                                   
	( RENDICION_REQ_FONDOS.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                      			                    FROM TIPO_DOCUMENTOS  
	                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) ) AND
         ( CONVERT(char(2),RENDICION_REQ_FONDOS.FECH_DOCU_RRE,101) = @pPermes )    )
DECLARE
@vls_numsec  char(5),
@vln_numcor  numeric(6),
@vln_tipcam  numeric(10,6),
@varcur_tdo	char(3),
@varcur_nrs	char(4),
@varcur_nrd	char(30),
@varcur_tfa	char(3),
@varcur_fdc	datetime,
@varcur_fca	datetime,
@varcur_fingr	datetime,
@varcur_des	varchar(80),
@varcur_tel	varchar(40),
@varcur_dir	varchar(50),
@varcur_ruc	char(15),
@varcur_dpt	char(15),
@varcur_mto	numeric(13,4),
@varcur_igv	numeric(13,4),
@varcur_tca	numeric(10,6),
@varcur_mot	numeric(13,4),
@varcur_ies	numeric(13,4),
@varcur_rta	numeric(13,4),
@varcur_tot	numeric(13,4),
@varcur_totgen	numeric(13,4),

@varcur_bcdf_mont numeric(13,4),
@varcur_bsdf_mont numeric(13,4),
@varcur_bngr_mont numeric(13,4),

@varcur_pag	char(7),
@varcur_sia	char(20),
@varcur_fcd datetime, 
@varcur_ncd char(20),
@varcur_fdm datetime,
@varcur_sdm char(4),
@varcur_ndm char(30),
@carcur_tdm char(3),
@vi_bus_dcto int,
@varcur_tre char(3),
@varcur_nre varchar(30)

BEGIN TRANSACTION                                                                                
DELETE FROM REGISTRO_COMPRA                                                                     
WHERE ( ANNO_REGI_RGC  = @pPerano ) AND                          
      ( MESS_REGI_RGC = @pPermes )   
COMMIT
BEGIN TRANSACTION                                                                                
OPEN C_DOCUMENTOS 
FETCH C_DOCUMENTOS 
INTO @varcur_tdo, @varcur_nrs, @varcur_nrd, @varcur_tfa, @varcur_fdc, @varcur_fca, @varcur_fingr,
     @varcur_des, @varcur_tel, @varcur_dir, @varcur_ruc, @varcur_dpt, @varcur_mto, @varcur_igv, 
     @varcur_tca, @varcur_mot, @varcur_ies, @varcur_rta, @varcur_tot, @varcur_pag, @varcur_sia,
	 @varcur_fcd, @varcur_ncd, @varcur_fdm, @varcur_sdm, @varcur_ndm, @carcur_tdm, @varcur_tre,
	 @varcur_nre
WHILE @@FETCH_STATUS=0
BEGIN
	SELECT @vls_numsec=MAX(REGISTRO_COMPRA.NUME_SECU_RGC)                                                      
   	FROM REGISTRO_COMPRA                                                                           
	WHERE REGISTRO_COMPRA.ANNO_REGI_RGC = @pPerano 
	
	SELECT @vlN_numcor=MAX(REGISTRO_COMPRA.NRO_CORR_RGC)                                                       
	FROM  REGISTRO_COMPRA                                                                            
	WHERE CONVERT(char(4),REGISTRO_COMPRA.FECH_CAN_DOC,111) =  @pPerano AND	                             
		CONVERT(char(2),REGISTRO_COMPRA.FECH_CAN_DOC,101) =  @pPermes 
	
	IF @vls_numsec is null 
		SET @vls_numsec = '00001'
	ELSE                                                                                               
        	SET @vls_numsec =RIGHT('00000' + LTRIM(RTRIM(CONVERT(CHAR(5),CONVERT(numeric(5),@vls_numsec)+1))),5)
	IF @vln_numcor is null  
		SET @vln_numcor = 1
	ELSE                                                                                               
	   	SET @vln_numcor = @vln_numcor + 1
	IF @varcur_tca = 0 
	   	SET @vln_tipcam = 1 
	ELSE                                                                                               
	   	SET @vln_tipcam = @varcur_tca
   

set @varcur_totgen=0

set @varcur_bcdf_mont=0
set @varcur_bsdf_mont=0
set @varcur_bngr_mont=0
set @varcur_mto=isnull(@varcur_mto,0)

set @varcur_totgen=isnull(@varcur_igv,0) + isnull(@varcur_tot,0) + isnull(@varcur_ies,0)+
                   isnull(@varcur_rta,2) + isnull(@varcur_mot,0)

If ( @varcur_tfa ='001' OR @varcur_tfa ='003') set @varcur_bcdf_mont=@varcur_mto
If ( @varcur_tfa ='002' OR @varcur_tfa ='004') set @varcur_bsdf_mont=@varcur_mto
If ( @varcur_tfa ='005' OR @varcur_tfa ='007') set @varcur_bngr_mont=@varcur_mto

   INSERT INTO REGISTRO_COMPRA
   ( NUME_SECU_RGC, ANNO_REGI_RGC, NRO_CORR_RGC,  SIMB_MONE_MON, TIPO_DOCU_TPD,             
     NOM_CONT_RGC,  FECH_DOCU_RGC, FECH_CAN_DOC,  NUME_SERI_RGC, NUME_DOCU_RGC,              
     NRO_RUC_RGC,   DIRE_CONT_RGC, LUG_CONT_RGC,  TELF_CONT_RGC, BRUT_SOLE_RGC,             
     IGVE__SOLE_RGC,BRUT_DOLA_RGC, IGVE__DOLA_RGC,ESTADO_RGC,    TIPO_FACT_RGC , 
     TIPO_CAMB_RGC, MONT_OTRO_RGC, MONT_IESS_RGC, MONT_RNTA_RGC, MONT_NETO_RGC,
     COMP_PAGO_RGC, NUME_SIAF_RGC, MESS_REGI_RGC, FECH_INGR_RGC, MONT_BCDF_RGC,
     MONT_BSDF_RGC, MONT_BNGR_RGC, MONT_TOTAL_RGC, FECH_CONST_DEP, NUME_CONST_DEP,
	 FECH_DOCU_ORI, SERI_DOCU_ORI, NUME_DOCU_ORI, TIPO_DOCU_ORI, TIPO_REFE_RGC,
	 NUME_REFE_RGC)                                                                                                   
   VALUES                                                                                           
   ( @vls_numsec,        @pPerano,    	            @vln_numcor,               'S/.',         @varcur_tdo,
     @varcur_des,        @varcur_fdc, 	            @varcur_fca,  	       @varcur_nrs,   @varcur_nrd,                                   
     @varcur_ruc,        @varcur_dir,               @varcur_dpt,               @varcur_tel,   @varcur_mto,
     @varcur_igv,       (@varcur_mto/@vln_tipcam), (@varcur_igv/@vln_tipcam),  '0',           @varcur_tfa,
     @vln_tipcam,        @varcur_mot,               @varcur_ies,               @varcur_rta,   @varcur_tot, 
     @varcur_pag,        @varcur_sia,               @pPermes,                  @varcur_fingr, @varcur_bcdf_mont,
     @varcur_bsdf_mont,  @varcur_bngr_mont,         @varcur_totgen,            @varcur_fcd,  @varcur_ncd,
	 @varcur_fdm,		 @varcur_sdm,				@varcur_ndm,			   @carcur_tdm, @varcur_tre,
	 @varcur_nre )
	 
/* Para Notas de Credito o Nota de Debito cuando se relacionan con varios documentos */
If	@varcur_tdo ='007' or @varcur_tdo ='008' 
Begin
	SELECT @vi_bus_dcto = COUNT(*) FROM REGISTRO_COMPRA
	WHERE  TIPO_DOCU_TPD = @varcur_tdo
	AND	   COALESCE(NUME_SERI_RGC,'x') = COALESCE(@varcur_nrs,'x')
	AND	   COALESCE(NUME_DOCU_RGC,'x') = COALESCE(@varcur_nrd,'x')
	AND	   COALESCE(NOM_CONT_RGC,'x') = COALESCE(@varcur_des,'x')
	AND	   ANNO_REGI_RGC = @pPerano
	AND	   MESS_REGI_RGC = @pPermes	 
	If @vi_bus_dcto > 1 
		Begin
		UPDATE REGISTRO_COMPRA
		SET		SIMB_MONE_MON = NULL,	
				FECH_CAN_DOC = NULL,  DIRE_CONT_RGC = NULL,
				LUG_CONT_RGC = NULL, TELF_CONT_RGC = NULL, BRUT_SOLE_RGC = 0,
				IGVE__SOLE_RGC = 0,	BRUT_DOLA_RGC = 0, IGVE__DOLA_RGC = 0, 
			    TIPO_FACT_RGC = NULL, TIPO_CAMB_RGC = NULL,	MONT_OTRO_RGC = 0,
				MONT_IESS_RGC = 0, MONT_RNTA_RGC = 0, MONT_NETO_RGC = 0,
			    COMP_PAGO_RGC = NULL, NUME_SIAF_RGC = NULL,	FECH_INGR_RGC = NULL, 
				MONT_BCDF_RGC = 0, MONT_BSDF_RGC = 0, MONT_BNGR_RGC = 0, 
				MONT_TOTAL_RGC = 0, FECH_CONST_DEP = NULL, NUME_CONST_DEP = NULL
		WHERE	ANNO_REGI_RGC = @pPerano
		AND		NUME_SECU_RGC = @vls_numsec
	End
End		
/**/

FETCH C_DOCUMENTOS 
INTO @varcur_tdo, @varcur_nrs, @varcur_nrd, @varcur_tfa, @varcur_fdc, @varcur_fca, @varcur_fingr, 
     @varcur_des, @varcur_tel, @varcur_dir, @varcur_ruc, @varcur_dpt, @varcur_mto, @varcur_igv, 
     @varcur_tca, @varcur_mot, @varcur_ies, @varcur_rta, @varcur_tot, @varcur_pag, @varcur_sia,
	 @varcur_fcd, @varcur_ncd, @varcur_fdm, @varcur_sdm, @varcur_ndm, @carcur_tdm, @varcur_tre,
	 @varcur_nre  
END 
close C_DOCUMENTOS 
deallocate C_DOCUMENTOS 
commit







GO

Open in new window


I've been working on changing the problems but I don't understand how I can group the Inner join and the left join together.

 FROM RENDICION_CAJA_CHICA, MAESTRO_DE_CONTRATISTAS, SOLICITUD_REEMBOLSO
    ,CABECERA_MOV
    ,COMPROBANTE_PAGO    

Open in new window



I would appreciate your help or some examples to guide me. Thank you very much
JnavarroMcIT ConsultantAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Kyle AbrahamsSenior .Net DeveloperCommented:
basically in the
where  if you just see an equal sign (without the asterik) between the 2 tables that is an inner join.

if you see the *=, that is a left join.

an inner join will only return matches where there is a match in both tables.
a left outer join will return all of the records from the source table, adding nulls if it can't find a match on the destination table.

For more information:
https://stackoverflow.com/questions/13765173/difference-between-left-join-and-in-sybase-ase-15
0
Vitor MontalvãoMSSQL Senior EngineerCommented:
Did you use Upgrade Advisor on the SQL Server 2000 database? It's a very good tool to prepare for database upgrade as it gives you a report on the issues found and how to solve them.

For this case in particular, what's the error message?
0
JnavarroMcIT ConsultantAuthor Commented:
Hello,

The message is:

Outer join operators *= and =* are not supported in 90 or later compatibility modes

Upgrade Advisor detected the use of outer join operators *= and =*. These operators are not supported in 90 or later compatibility modes. When you upgrade to SQL Server 2008, user databases maintain their compatibility mode. In 80 compatibility mode, the *= and =* operators for outer joins are supported with a warning message. If you change the database compatibility mode to 90 or later, statements that use these operators will fail.

I know how to change the join when I consult two tables but I have multiple tables in it and I don't know how to change it.

	FROM MAESTRO_DE_CONTRATISTAS, DOCUMENTOS_COMPRAS,TDEPARTAMENTOS, DOCUMENTOS_ORI_MOD
	WHERE 
             YEAR(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)=@pPerano AND 
             MONTH(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)=@pPermes AND
	      ( DOCUMENTOS_COMPRAS.TIPO_REFE_DOC <> '932' ) AND   
			( DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                         			                    FROM TIPO_DOCUMENTOS  
			                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) ) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_CONT_CON = SUBSTRING(DOCUMENTOS_COMPRAS.CODI_ANEX_ANX,2,8)) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_DEPT_CON = TDEPARTAMENTOS.CODI_DEPA_DPT ) AND
			( DOCUMENTOS_COMPRAS.PERI_ANNO_DOC *= DOCUMENTOS_ORI_MOD.PERI_ANNO_DOC ) AND
			( DOCUMENTOS_COMPRAS.CORR_DOCU_DOC *= DOCUMENTOS_ORI_MOD.CORR_DOCU_DOC )

Open in new window

0
Powerful Yet Easy-to-Use Network Monitoring

Identify excessive bandwidth utilization or unexpected application traffic with SolarWinds Bandwidth Analyzer Pack.

JnavarroMcIT ConsultantAuthor Commented:
I've changed the scheme a little bit so that it's programmed this way:

FROM 
	DOCUMENTOS_COMPRAS  
	inner join TDEPARTAMENTOS  ON
	( MAESTRO_DE_CONTRATISTAS.CODI_CONT_CON = SUBSTRING(DOCUMENTOS_COMPRAS.CODI_ANEX_ANX,2,8))
	inner join MAESTRO_DE_CONTRATISTAS  ON
	( MAESTRO_DE_CONTRATISTAS.CODI_DEPT_CON = TDEPARTAMENTOS.CODI_DEPA_DPT ) 
	left outer join DOCUMENTOS_ORI_MOD ON 
	( DOCUMENTOS_COMPRAS.PERI_ANNO_DOC = DOCUMENTOS_ORI_MOD.PERI_ANNO_DOC ) AND
	( DOCUMENTOS_COMPRAS.CORR_DOCU_DOC = DOCUMENTOS_ORI_MOD.CORR_DOCU_DOC ) 
	WHERE 
	         YEAR(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)=@pPerano AND 
     MONTH(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)=@pPermes  AND
     ( DOCUMENTOS_COMPRAS.TIPO_REFE_DOC <> '932' ) AND   
	( DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                         			                    FROM TIPO_DOCUMENTOS  
			                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  )   
UNION (  

Open in new window


is approaching the right thing? I have an advent in part from "UNION"
0
JnavarroMcIT ConsultantAuthor Commented:
I have been able to advance a little more in the construction of the change and I have been able to have this result:

Origen: (Correct = 122 rows)

	SELECT DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD TDO,                                                   
		DOCUMENTOS_COMPRAS.SERI_DOCU_DOC NRS,                                                        
		RTRIM(DOCUMENTOS_COMPRAS.NUME_DOCU_DOC) NRD,                                                   
		DOCUMENTOS_COMPRAS.TIPO_FACT_DOC TFA,                                                        
		DOCUMENTOS_COMPRAS.FECH_DOCU_DOC FDC,                                                        
		DOCUMENTOS_COMPRAS.FECH_CAN_DOC FCA,
		DOCUMENTOS_COMPRAS.FECH_INGR_DOC FINGR,

		MAESTRO_DE_CONTRATISTAS.DESC_CONT_CON DES,                                                   
		MAESTRO_DE_CONTRATISTAS.TELE_FONO_CON TEL,                                                   
		SUBSTRING(MAESTRO_DE_CONTRATISTAS.DIRE_CONT_CON,1,50) DIR,                                      
		MAESTRO_DE_CONTRATISTAS.NRO_RUC_CON RUC,                                                     
		rtrim(TDEPARTAMENTOS.NOMB_DPTO_DPT) DPT,                                                     
		DOCUMENTOS_COMPRAS.MONT_DOCU_DOC MTO,                                                        
		DOCUMENTOS_COMPRAS.MONT_MIGV_DOC IGV,                                                        
		DOCUMENTOS_COMPRAS.TIPO_CAMB_DOC TCA,
		DOCUMENTOS_COMPRAS.MNTO_OTRO_DOC MOT,   
         DOCUMENTOS_COMPRAS.MONT_IES_DOC IES,   
         DOCUMENTOS_COMPRAS.MONT_RNTA_DOC RTA,   
         DOCUMENTOS_COMPRAS.MONT_DOCU_DOC TOT,   
         DOCUMENTOS_COMPRAS.COMP_PAGO_DOC PAG,   
         DOCUMENTOS_COMPRAS.NUME_SIAF_DOC SIA,
		(SELECT TOP 1 FECH_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	FECH_CONST_DEP,
		(SELECT TOP 1 NUME_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	NUME_CONST_DEP,
		 DOCUMENTOS_ORI_MOD.FECH_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.SERI_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.NUME_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.TIPO_DOCU_TPD,
		 DOCUMENTOS_COMPRAS.TIPO_REFE_DOC,
		 DOCUMENTOS_COMPRAS.NUME_REFE_DOC    	                                                        
	FROM MAESTRO_DE_CONTRATISTAS, DOCUMENTOS_COMPRAS,TDEPARTAMENTOS, DOCUMENTOS_ORI_MOD
	WHERE 
             YEAR(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)='2014' AND 
             MONTH(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)='04' AND
	      ( DOCUMENTOS_COMPRAS.TIPO_REFE_DOC <> '932' ) AND   
			( DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                         			                    FROM TIPO_DOCUMENTOS  
			                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) ) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_CONT_CON = SUBSTRING(DOCUMENTOS_COMPRAS.CODI_ANEX_ANX,2,8)) AND
			( MAESTRO_DE_CONTRATISTAS.CODI_DEPT_CON *= TDEPARTAMENTOS.CODI_DEPA_DPT ) AND
			( DOCUMENTOS_COMPRAS.PERI_ANNO_DOC *= DOCUMENTOS_ORI_MOD.PERI_ANNO_DOC ) AND
		( DOCUMENTOS_COMPRAS.CORR_DOCU_DOC *= DOCUMENTOS_ORI_MOD.CORR_DOCU_DOC )
	
	
	

Open in new window


My T-SQL: (Bad = 33128 rows)

	SELECT A.TIPO_DOCU_TPD TDO,                                                   
		A.SERI_DOCU_DOC NRS,                                                        
		RTRIM(A.NUME_DOCU_DOC) NRD,                                                   
		A.TIPO_FACT_DOC TFA,                                                        
		A.FECH_DOCU_DOC FDC,                                                        
		A.FECH_CAN_DOC FCA,
		A.FECH_INGR_DOC FINGR,

		C.DESC_CONT_CON DES,                                                   
		C.TELE_FONO_CON TEL,                                                   
		SUBSTRING(C.DIRE_CONT_CON,1,50) DIR,                                      
		C.NRO_RUC_CON RUC,                                                     
		rtrim(D.NOMB_DPTO_DPT) DPT,                                                     
		A.MONT_DOCU_DOC MTO,                                                        
		A.MONT_MIGV_DOC IGV,                                                        
		A.TIPO_CAMB_DOC TCA,
		A.MNTO_OTRO_DOC MOT,   
         A.MONT_IES_DOC IES,   
         A.MONT_RNTA_DOC RTA,   
         A.MONT_DOCU_DOC TOT,   
         A.COMP_PAGO_DOC PAG,   
         A.NUME_SIAF_DOC SIA,
		(SELECT TOP 1 FECH_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = A.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = A.CORR_DOCU_DOC)	FECH_CONST_DEP,
		(SELECT TOP 1 NUME_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = A.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = A.CORR_DOCU_DOC)	NUME_CONST_DEP,
		 B.FECH_DOCU_ORI,
		 B.SERI_DOCU_ORI,
		 B.NUME_DOCU_ORI,
		 B.TIPO_DOCU_TPD,
		 A.TIPO_REFE_DOC,
		 A.NUME_REFE_DOC    	                                                        
	FROM DOCUMENTOS_COMPRAS as A
	Left  Join DOCUMENTOS_ORI_MOD as B ON
	( A.PERI_ANNO_DOC = B.PERI_ANNO_DOC ) AND
	( A.CORR_DOCU_DOC = B.CORR_DOCU_DOC ) AND
	( A.TIPO_REFE_DOC <> '932' ) AND   
			( A.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                         			                    FROM TIPO_DOCUMENTOS  
			                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) ) AND
	 YEAR(A.FECH_DOCU_DOC)='2014' AND 
     MONTH(A.FECH_DOCU_DOC)='04' 
	Inner Join MAESTRO_DE_CONTRATISTAS as C ON
	( C.CODI_CONT_CON = SUBSTRING(A.CODI_ANEX_ANX,2,8)) 
	Left  Join TDEPARTAMENTOS as D ON		
	( C.CODI_DEPT_CON = D.CODI_DEPA_DPT )

Open in new window


Could you help me detect the error?

Thanks
0
JnavarroMcIT ConsultantAuthor Commented:
I solved it. Thanks

	SELECT DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD TDO,                                                   
		DOCUMENTOS_COMPRAS.SERI_DOCU_DOC NRS,                                                        
		RTRIM(DOCUMENTOS_COMPRAS.NUME_DOCU_DOC) NRD,                                                   
		DOCUMENTOS_COMPRAS.TIPO_FACT_DOC TFA,                                                        
		DOCUMENTOS_COMPRAS.FECH_DOCU_DOC FDC,                                                        
		DOCUMENTOS_COMPRAS.FECH_CAN_DOC FCA,
		DOCUMENTOS_COMPRAS.FECH_INGR_DOC FINGR,

		MAESTRO_DE_CONTRATISTAS.DESC_CONT_CON DES,                                                   
		MAESTRO_DE_CONTRATISTAS.TELE_FONO_CON TEL,                                                   
		SUBSTRING(MAESTRO_DE_CONTRATISTAS.DIRE_CONT_CON,1,50) DIR,                                      
		MAESTRO_DE_CONTRATISTAS.NRO_RUC_CON RUC,                                                     
		rtrim(TDEPARTAMENTOS.NOMB_DPTO_DPT) DPT,                                                     
		DOCUMENTOS_COMPRAS.MONT_DOCU_DOC MTO,                                                        
		DOCUMENTOS_COMPRAS.MONT_MIGV_DOC IGV,                                                        
		DOCUMENTOS_COMPRAS.TIPO_CAMB_DOC TCA,
		DOCUMENTOS_COMPRAS.MNTO_OTRO_DOC MOT,   
         DOCUMENTOS_COMPRAS.MONT_IES_DOC IES,   
         DOCUMENTOS_COMPRAS.MONT_RNTA_DOC RTA,   
         DOCUMENTOS_COMPRAS.MONT_DOCU_DOC TOT,   
         DOCUMENTOS_COMPRAS.COMP_PAGO_DOC PAG,   
         DOCUMENTOS_COMPRAS.NUME_SIAF_DOC SIA,
		(SELECT TOP 1 FECH_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	FECH_CONST_DEP,
		(SELECT TOP 1 NUME_CONST_DEP FROM CHEQUE_DETRACC 
			WHERE CHEQUE_DETRACC.PERI_ANNO_DOC = DOCUMENTOS_COMPRAS.PERI_ANNO_DOC
			AND	  CHEQUE_DETRACC.CORR_DOCU_DOC = DOCUMENTOS_COMPRAS.CORR_DOCU_DOC)	NUME_CONST_DEP,
		 DOCUMENTOS_ORI_MOD.FECH_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.SERI_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.NUME_DOCU_ORI,
		 DOCUMENTOS_ORI_MOD.TIPO_DOCU_TPD,
		 DOCUMENTOS_COMPRAS.TIPO_REFE_DOC,
		 DOCUMENTOS_COMPRAS.NUME_REFE_DOC    	                                                        
	FROM  
	DOCUMENTOS_COMPRAS  
	left join DOCUMENTOS_ORI_MOD ON
	( DOCUMENTOS_COMPRAS.PERI_ANNO_DOC = DOCUMENTOS_ORI_MOD.PERI_ANNO_DOC ) AND
	( DOCUMENTOS_COMPRAS.CORR_DOCU_DOC = DOCUMENTOS_ORI_MOD.CORR_DOCU_DOC )
	inner join MAESTRO_DE_CONTRATISTAS  ON
	( MAESTRO_DE_CONTRATISTAS.CODI_CONT_CON = SUBSTRING(DOCUMENTOS_COMPRAS.CODI_ANEX_ANX,2,8)) AND
	 YEAR(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)='2014' AND 
             MONTH(DOCUMENTOS_COMPRAS.FECH_DOCU_DOC)='04' AND
	      ( DOCUMENTOS_COMPRAS.TIPO_REFE_DOC <> '932' ) AND
	      ( DOCUMENTOS_COMPRAS.TIPO_DOCU_TPD in (  SELECT TIPO_DOCUMENTOS.TIPO_DOCU_TPD  
                         			                    FROM TIPO_DOCUMENTOS  
			                                            WHERE TIPO_DOCUMENTOS.FLAG_RCOM_TPD = '1'  ) )
	left join TDEPARTAMENTOS ON
	( MAESTRO_DE_CONTRATISTAS.CODI_DEPT_CON = TDEPARTAMENTOS.CODI_DEPA_DPT ) 

Open in new window

0
Vitor MontalvãoMSSQL Senior EngineerCommented:
Unfortunately you'll need to make the same exercise for each of one of queries that has the same issue. Hopefully they aren't that much.
Good luck with the migration.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Vitor MontalvãoMSSQL Senior EngineerCommented:
Please don't delete this question has you've provided the answer and can be useful for other people in the future.
Instead of delete, you can close this question by accepting you own answer.
Cheers
0
JnavarroMcIT ConsultantAuthor Commented:
I wanted to close the question on a security issue but I'll leave it open, I don't think it's dangerous. Thanks!!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Query Syntax

From novice to tech pro — start learning today.