Manual Consulta Dos Bases de Datos de Diferente Servidor

download Manual Consulta Dos Bases de Datos de Diferente Servidor

of 5

description

Manual Consulta Dos Bases de Datos de Diferente Servidor

Transcript of Manual Consulta Dos Bases de Datos de Diferente Servidor

CONSULTAKevin Segura 17/08/2015CONSULA A DOS SERVIDORES DIFERENTES EN UNA SOLA

Realizar una consulta en la cual involucra dos bases de datos pero que se encuentran en distintos servidores, para poder realizar esta consulta primero debemos revisar si en cualquiera de los dos servidores tiene una vinculacin con el otro a nivel de base de datos, si no se tiene esta vinculacin toca crearla.PROCEDIMIENTOProcederemos a crear una vinculacin del servidor secu110103 en el servidor secu110104.Primero ingresamos al servidor secu110104 y a la base de datos del mismo.

En el men de la parte izquierda nos dirigimos a objetos del servidor->Servidores Vinculados damos clik derecho en servidores vinculados y escogemos Nuevo servidor Vinculado

En el nuevo cuadro ponemos el nombre el cual le queremos dar y seleccionamos la opcin SQL Server

De ah en el men de la izquierda seleccionamos Seguridad, seleccionamos la opcin Se establecer usando este contexto de seguridad y se habilitara para ingresar un usuario y contrasea.

Y daremos clic en Aceptar y con esto culminamos y despus en la lista de servidores vinculados podremos observar al nuevo que creamos:

Una vez realizado esto ya podremos realizar nuestra consulta la cual involucra a las bases de datos de los diferentes servidoresA continuacion se muestra una consulta en la cual se utilizada tablas del AS400 (servidor secdu110106) y tablas del servidor de colombia (scol25).Al momento de efectuar la consulta se debe especificar de la mejor manera la parte del FROM ya que aqu se indica de donde estoy extrayendo los datos, debo especificar [servidor].[base de datos].[tabla]ConsultaSELECT HPH.PHORD, HPH.PHWHSE, HPH.PHVEND, HPH.PHENDT, HPH.PHTERM, HPH.PHBUYC, UPPER(IBUYE.BUYDES) AS COMPRADOR, HPH.PHCUR, AVM.VNDNAM,AVM.VPOST, HPO.PPROD, HPO.PQORD, HPO.PQREC, HPO.PECST, HPO.PUM, HPO.PGLNO, HPO.PWHSE, HPO.PONIIT, HPO.PODESC, HPO.POPRF, ESNL99.SNDESC, AVM.VMFSCD, cadesc, PDPT,HPO.PLINE , HPO.PDDTE, ITHu.TTDTE04, ITABL.TABDES, HPO.PSTAT, HPO.POQTY,HPH.PHRCRT, HPO.PID,OC.[EstadoGlobal],OC.[BuyerID],OCG.[Estado],A.[FechaEnvioAAprobador],A.[FechaDecision],vw.ESTADOBPCS,CASE WHEN( OC.[EstadoGlobal] IS NOT NULL) THEN OC.[EstadoGlobal] ELSE vw.ESTADOBPCS END AS ESTADOFINAL

FROM AS400.S105ARHM.REAL405CDF.HPH HPH left join AS400.S105ARHM.REAL405CDF.AVM AVM on HPH.PHVEND = AVM.VENDOR join AS400.S105ARHM.REAL405CDF.HPO HPO on HPH.PHORD = HPO.PORD AND HPH.PHVEND = HPO.PVEND left join AS400.S105ARHM.REAL405CDF.RCL RCL on HPO.POPRF = RCL.PCNTR AND HPH.PHCOMP = RCL.CLCMPY left join AS400.S105ARHM.REAL405CDF.GCAL01 GCAL01 on HPO.PGLNO = GCAL01.CACC left join AS400.S105ARHM.REALCDUSRF.ESNL99 ESNL99 on HPO.PORD = ESNL99.SNCUST AND HPO.PLINE = ESNL99.SNSHIP left join AS400.S105ARHM.REALCDUSRF.IBUYE IBUYE ON IBUYE.BUYCOD = HPH.PHBUYC AND IBUYE.BUYCOD NOT IN ('F', 'S', 'X') left JOIN AS400.S105ARHM.REAL405CDF.ITHU ITHu ON ITHu.TREF = HPO.PORD AND ITHu.TPROD = HPO.PPROD and HPO.PLINE = ITHu.THLIN left join AS400.S105ARHM.REALCDUSRF.ITABL ITABL ON ITABL.TABCO1 = HPO.PSTAT AND ITABL.TABTAB ='PU' AND ITABL.TABCOD ='PSTAT' LEFT JOIN scol440125.[ECU-AprobacionOC].[dbo].[vwOCBPCSCasos] vw on (convert(nvarchar (10),HPH.PHORD,0) = vw.[OrdenCompra] AND convert(nvarchar(10),HPH.PHVEND,0) = vw.[CodProveedor])LEFT JOIN scol440125.[ECU-AprobacionOC].[dbo].[OCEncabezado] OC ON (convert(nvarchar (10),HPH.PHORD,0) = OC.[NumOC] AND convert(nvarchar(10),HPH.PHVEND,0) = OC.[CodigoProveedor])LEFT JOIN scol440125.[ECU-AprobacionOC].[dbo].[OCEstadoGlobal] OCG ON (OC.[EstadoGlobal] = OCG.[OCEstadosGlobales])LEFT JOIN scol440125.[ECU-AprobacionOC].[dbo].[vwIndicadoresDecisionOC] A ON (A.IDOCEncabezado = OC.IDOCEncabezado)WHERE HPH.PHENDT >= @fechaInicial AND HPH.PHENDT