none
dos consulta en un solo grid view RRS feed

  • Pregunta

  • amigos tengo un problema ,tengo dos consulta con respecto a un mismo tipo por ejemplo controlo un elemento con su horario de uso (por ejemplo un camion que tiene horas de uso ) sin embargo  para la misma maquina uso dos consulta diferentes una que el total de horas en uso operativo y otra que calcule las horas de mantenimimineto en el dia sin embargo no se como juntar esas dos consulta en un grid view para que me aparesca de esta forma

     

                     consulta SQL1        consulta SQL  2
                    operativo               mantenimiento 
    camion 1        11                             2
    camion 1         14                            3
    
    la verda no so como hacerlo , como dato adicional tanto las horas operativas como las de mantenimiento son sacadas de la misma tabla , 


    German Ponce
    lunes, 23 de enero de 2012 15:43

Respuestas

  • Hola German,

    no se como se llama la tabla ni las columnas que tiene pero según lo que comentás que sacas todo de la misma entonces, quizás puedes guardar ambas consultas en diferentes tablas temporales y luego hacer un joins contra las mismas.

    Claro, todo depende también si estas utilizando procedimientos almacenados y tu base de datos es sql.

     

    Saludos,


    Mariano Llarin.-
    lunes, 23 de enero de 2012 15:49
  • hola, concuerdo con Mariano, es mejor q lo hagas todo en tu sql, puedes hacer un union de tus consultas, algo asi:

    select operativo, '' as mantenimiento
    from tabla1
    union
    select '' as oeprativo, mantenimiento
    from tabla2
    



    Julio Avellaneda
    Core Group Comunidad BDotNet
    MCP - MCC - MCS
    Blog !!

    lunes, 23 de enero de 2012 16:09

Todas las respuestas

  • Hola German,

    no se como se llama la tabla ni las columnas que tiene pero según lo que comentás que sacas todo de la misma entonces, quizás puedes guardar ambas consultas en diferentes tablas temporales y luego hacer un joins contra las mismas.

    Claro, todo depende también si estas utilizando procedimientos almacenados y tu base de datos es sql.

     

    Saludos,


    Mariano Llarin.-
    lunes, 23 de enero de 2012 15:49
  • hola, concuerdo con Mariano, es mejor q lo hagas todo en tu sql, puedes hacer un union de tus consultas, algo asi:

    select operativo, '' as mantenimiento
    from tabla1
    union
    select '' as oeprativo, mantenimiento
    from tabla2
    



    Julio Avellaneda
    Core Group Comunidad BDotNet
    MCP - MCC - MCS
    Blog !!

    lunes, 23 de enero de 2012 16:09
  • hola , gracias por la ayuda , me funciono sin embargo me aparecio un detalle,  cuando hago la union  me aparecen dos registros referente al mismo equipo es decir un resultado de la horas operativas y  a continuacion , abajo a la derecha , el resultado de la horas de mantenimiento , yo busco que este en una misma linea cada registro, les envio el codigo

    DECLARE @FECHA  AS DATETIME
    SET @FECHA= CONVERT(CHAR(10),GETDATE(),103)
    --SET @FECHA= CONVERT(CHAR(10),'17-01-2012',103)
    
    
    SELECT		FL.FLO_CODIGO+'-'+CONVERT(VARCHAR, EQ.EQU_NUMERO) AS EQUIPO
    			,ISNULL(vtDet.T_DETENCION,0) AS T_DET_FISICA
    			,ISNULL(12-vtDet.T_DETENCION,0) AS T_DISP_FISICA
    			,convert(varchar,convert(decimal(10,2) ,ISNULL((12-vtDet.T_DETENCION)/12,0)))+' %' AS DISP_FISICA
    			
    			,convert(float,'') AS T_DET_MARC
    			,convert(float,'') AS T_DISP_MARC
    			,'' AS DISP_MARC
    			
    			
    			
    FROM         (SELECT * FROM TMM_EQUIPO where EST_ID_ESTADO_EQUIPO=2 and FLO_ID_FLOTA=1) AS EQ
    			inner JOIN TMM_FLOTA as FL
    						ON EQ.FLO_ID_FLOTA = FL.FLO_ID_FLOTA
    			
    			left JOIN	(
    						SELECT  vOT.ID_EQUIPO AS ID_EQUIPO
    						,convert(decimal(10,2) ,SUM(vOT.T_DET)) AS T_DETENCION
    						,vOT.TAR_FECHADISP AS F_Disp
    						
    						
    						FROM VISTA_OT_TAREAS AS vOT
    						WHERE vOT.TAR_FECHADISP=@FECHA and vOT.MAR_FISICO =1 
    						--FECHA DISPONIBILIDAD DADA Y TODOS LOS CODIGO MENOS CODIGO MARC
    						GROUP BY vOT.ID_EQUIPO, vOT.TAR_FECHADISP
    						) 
    			AS vtDet ON vtDet.ID_EQUIPO=EQ.EQU_ID_EQUIPO 
    			
    			AND vtDet.F_Disp=@FECHA  
    
    union 
    
    
    SELECT		FL.FLO_CODIGO+'-'+CONVERT(VARCHAR, EQ.EQU_NUMERO) AS EQUIPO
    			,convert(float,'') AS T_DET_FISICA
    			,convert(float,'') AS T_DISP_FISICA
    			,'' AS DISP_FISICA
    			
    			,ISNULL(vtDet.T_DETENCION,0) AS T_DET_MARC
    			,ISNULL(12-vtDet.T_DETENCION,0) AS T_DISP_MARC
    			,convert(varchar,convert(decimal(10,2) ,ISNULL((12-vtDet.T_DETENCION)/12,0)))+' %' AS DISP_MARC
    			
    
    FROM         (SELECT * FROM TMM_EQUIPO where EST_ID_ESTADO_EQUIPO=2 and FLO_ID_FLOTA=1) AS EQ
    			inner JOIN TMM_FLOTA as FL
    						ON EQ.FLO_ID_FLOTA = FL.FLO_ID_FLOTA
    			
    			left JOIN	(
    						SELECT  vOT.ID_EQUIPO AS ID_EQUIPO
    						,convert(decimal(10,2) ,SUM(vOT.T_DET)) AS T_DETENCION
    						,vOT.TAR_FECHADISP AS F_Disp
    						
    						
    						FROM VISTA_OT_TAREAS AS vOT
    						WHERE vOT.TAR_FECHADISP=@FECHA and vOT.MAR_MARC=1 
    						--FECHA DISPONIBILIDAD DADA Y TODOS LOS CODIGO MENOS CODIGO MARC
    						GROUP BY vOT.ID_EQUIPO, vOT.TAR_FECHADISP
    						) 
    			AS vtDet ON vtDet.ID_EQUIPO=EQ.EQU_ID_EQUIPO 
    			
    			AND vtDet.F_Disp=@FECHA  


    ojala puedan ayudarme

    saludos y gracias

     

     


    German Ponce
    lunes, 23 de enero de 2012 18:51