Subconsulta con mas de una columna
Publicado por Erasmo (15 intervenciones) el 28/06/2012 19:09:26
Hola a todos.
Tengo una consulta en sql 2008 que busca algunas columnas en una tabla, selecciona datos de otras dos tablas a traves de left join y que tiene una subconsulta. Hasta ahi todo va bien, el problema radica en que el campo que estoy desplegando en la subconsulta es un codigo y tiene una descrpcion que esta almacenada en otra tabla. Me gustaria poder relacionar ese campo de esa tabla con la tabla en donde esta la descrpcion. A continuacion el query que estoy utilizando.
SELECT A.SRVSTAT AS ID_ESTATUS, C.STSDESCR AS ESTATUS, A.SRVTYPE AS TIPO, A.CUSTNMBR AS ID_CLIENTE, A.CUSTNAME AS CLIENTE,
A.TECHID, B.NAME AS NOMBRE_TECNICO, A.ENTDTE AS ENTRADA, A.ARRIVDTE AS LLEGADA, A.COMPDTE AS FINALIZACION,
Case when A.SRVSTAT <> '80L' AND A.SRVSTAT <> '90F' THEN DateDiff(dd,A.ENTDTE,GETDATE()) else 0 end 'PERMANENCIA',
Case when A.SRVSTAT = '80L' OR A.SRVSTAT = '90F' THEN DateDiff(dd,A.ARRIVDTE,A.COMPDTE) else 0 end 'EFICIENCIA',
(SELECT TOP 1 D.PROBCDE AS ID_PROBLEMA FROM TBNRD.dbo.SVC00201 AS D WHERE D.CALLNBR = A.CALLNBR) AS 'ID_PROBLEMA'
FROM TBNRD.dbo.SVC00200 AS A
LEFT JOIN TBNRD.dbo.SVC00100 AS B ON B.TECHID = A.TECHID
LEFT JOIN TBNRD.dbo.SVC00913 AS C ON C.SRVSTAT = A.SRVSTAT
Order By A.CALLNBR
en donde el campo codigo del cual deseo presentar la descripcon es D.PROBCDE y la tabla donde esta la descricion a este se llama TABLAPROB y el campo para relacionarlo se llama TABLAPROB.PROBCDE.
Espero haberme explicado claramente y que puedan ayudarme. Gracias anticipadas.
Tengo una consulta en sql 2008 que busca algunas columnas en una tabla, selecciona datos de otras dos tablas a traves de left join y que tiene una subconsulta. Hasta ahi todo va bien, el problema radica en que el campo que estoy desplegando en la subconsulta es un codigo y tiene una descrpcion que esta almacenada en otra tabla. Me gustaria poder relacionar ese campo de esa tabla con la tabla en donde esta la descrpcion. A continuacion el query que estoy utilizando.
SELECT A.SRVSTAT AS ID_ESTATUS, C.STSDESCR AS ESTATUS, A.SRVTYPE AS TIPO, A.CUSTNMBR AS ID_CLIENTE, A.CUSTNAME AS CLIENTE,
A.TECHID, B.NAME AS NOMBRE_TECNICO, A.ENTDTE AS ENTRADA, A.ARRIVDTE AS LLEGADA, A.COMPDTE AS FINALIZACION,
Case when A.SRVSTAT <> '80L' AND A.SRVSTAT <> '90F' THEN DateDiff(dd,A.ENTDTE,GETDATE()) else 0 end 'PERMANENCIA',
Case when A.SRVSTAT = '80L' OR A.SRVSTAT = '90F' THEN DateDiff(dd,A.ARRIVDTE,A.COMPDTE) else 0 end 'EFICIENCIA',
(SELECT TOP 1 D.PROBCDE AS ID_PROBLEMA FROM TBNRD.dbo.SVC00201 AS D WHERE D.CALLNBR = A.CALLNBR) AS 'ID_PROBLEMA'
FROM TBNRD.dbo.SVC00200 AS A
LEFT JOIN TBNRD.dbo.SVC00100 AS B ON B.TECHID = A.TECHID
LEFT JOIN TBNRD.dbo.SVC00913 AS C ON C.SRVSTAT = A.SRVSTAT
Order By A.CALLNBR
en donde el campo codigo del cual deseo presentar la descripcon es D.PROBCDE y la tabla donde esta la descricion a este se llama TABLAPROB y el campo para relacionarlo se llama TABLAPROB.PROBCDE.
Espero haberme explicado claramente y que puedan ayudarme. Gracias anticipadas.
Valora esta pregunta


0