Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #34  
Antiguo 08-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola de nuevo,
estoy haciendo unas pruebas, y la verdad, no me están convenciendo. A no ser que esté haciendo algo mal, y que agradecería que me lo indicarais si alguien lo sabe.

Mi intención es sacar una consulta con las poblaciones y los estados civiles de los clientes. La tabla es de clientes, en donde hay id, nombre, población y estado civil. La tabla tiene 16.500 registros. Existen 4 estados civiles ,a saber: CASADO, SOLTERO, SIN DEF. y VIUDO ( tened en cuenta que no está en producción, son pruebas ).

Una primera consulta sería
Código SQL [-]
select poblacion,
sum ( case when estadocivil='CASADO' then 1 ELSE 0 END) AS CASADO,
sum ( case when estadocivil='SOLTERO' then 1 ELSE 0 END) AS SOLTERO,
sum ( case when estadocivil='SIN DEF.' then 1 ELSE 0 END) AS SINDEF,
sum ( case when estadocivil='VIUDO' then 1 ELSE 0 END) AS VIUDO
from cliente
group by poblacion

Respuesta perfecta, tiempo de consulta aprox 3 segundos.

Utilizando WITH

Código SQL [-]
 with
  estadosciviles as (
    select estadocivil as EC, count(idcliente) as NUMERO
    from cliente
    group by estadocivil)
    select poblacion,
    ECC.numero as CASADOS,
    ECS.numero as SOLTEROS,
    ECSD.numero as SINDEF,
    ECV.numero as VIUDOS
    from cliente  C
    left join estadosciviles ECC on C.estadocivil=ECC.EC
    and ECC.EC='CASADO'
    left join estadosciviles ECS on C.estadocivil=ECS.EC
    and ECS.EC='SOLTERO'
    left join estadosciviles ECSD on C.estadocivil=ECSD.EC
    and ECSD.EC='SIN DEF.'
    left join estadosciviles ECV on C.estadocivil=ECV.EC
    and ECV.EC='VIUDO'

Resultado inexacto. Me devuelve más de una fila por población, y datos un poco extraños.
Tiempo de respuesta. Me deja el equipo cuajado un par de minutos al menos.

Me da la sensación de que estoy haciendo mal la consulta. A ver si alguien me puede poner luz...

Gracias
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta con Filas en Columnas afxe SQL 3 30-01-2011 14:52:18
Consulta de Filas y Columnas mjjj SQL 1 19-02-2010 22:24:36
Filas y Columnas pmcastilla Varios 2 07-12-2007 20:22:01
ocultar filas o columnas karla Servers 1 10-08-2006 20:03:18
Filas a columnas nightynvid MS SQL Server 0 31-05-2006 16:22:44


La franja horaria es GMT +2. Ahora son las 18:57:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi