dejo la consulta 1 segundo en sql server 2008 r2 y en vb6 15 segundos
Código HTML:
SELECT MAX(Paciente.Apellido) AS PApellido, MAX(Realizado.Liquida_Prox_NroFila) AS Liquida_Prox_NroFila , MAX(Realizado.Prestacion) AS Prestacion, MAX(Realizado.Realizada) AS Realizada, MAX(Realizado.ImporteOS) AS ImporteOS, Realizado.Numero, MAX(Realizado.Iva) AS Iva, MAX(Realizado.Cantidad) AS Cantidad, MAX(Realizado.Ficha) AS Ficha, MAX(Realizado.Nro_Orden) AS Nro_Orden, MAX(Realizado.Fecha_Facturable) AS Fecha_Facturable, MAX(Realizado.Paciente) AS Paciente, (Realizado.Consiliado) AS Consiliado, MAX(Realizado.Descuento_Porcentaje) AS Descuento_Porcentaje, MAX(Realizado.Descontado_Importe) AS Descontado_Importe, Realizado.Liquida_Prox, MAX(Realizado.Liquida_OS) AS Liquida_OS, MAX(Realizado.IdLiquida_OS_Refacturacion) AS IdLiquida_OS_Refacturacion, MAX(Paciente.Afiliado) AS PAfiliado, MAX(OSocial.Nombre) AS Plan_Nombre, MAX(Nomencla.Importe) AS NImporte, MAX( case WHEN LEN(Realizado.Prestacion_Nombre)>0 then Realizado.Prestacion_Nombre else Nomencla.Descrip end ) AS NDescrip, MAX(Profesional.Apellido) AS ProfApellido, case WHEN OSocial.SinIva=1 then 0 else case WHEN OSocial.DiscPac=0 then 1 else Paciente.CalculaIva end end AS Paciente_TieneIva FROM ((((realizado WITH (NOLOCK) INNER JOIN osocial ON realizado.osocial=osocial.numero) INNER JOIN paciente ON realizado.PACIENTE=paciente.numero) LEFT JOIN nomencla ON (realizado.PRESTACION=nomencla.codigo) AND (realizado.osocial=nomencla.osocial)) LEFT JOIN profesional ON realizado.PROFESIONAL=profesional.numero) LEFT JOIN nomencla_base ON realizado.PRESTACION=nomencla_base.codigo WHERE (OSocial.idmayorista=680 OR OSocial.idmayorista IN (26) ) AND IsDate(Realizado.Realizada)=1 AND Realizado.OSocial IN (7, 6, 4, 296, 295) AND Realizado.Liquida_OS=0 AND Realizado.Prestacion<>'-1' AND Realizado.importeos<>0 GROUP BY Realizado.Numero, Realizado.Liquida_Prox, Realizado.Consiliado, OSocial.SinIva, OSocial.DiscPac, Paciente.CalculaIva ORDER BY 2, 1, 10, 9, 4