Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Dudas sobre funcion COUNT (https://www.clubdelphi.com/foros/showthread.php?t=51365)

spalma 13-12-2007 15:25:32

Dudas sobre funcion COUNT
 
Amigos, revisando un post existente en el foro encontre un tema que hace algo de referencia a lo que necesito, adjunto ejemplo de datos:

Cita:

...Para contar ciertos registros, en mi tabla Apert, tengo un campo defino como Giro en el cual tengo varios registros identificados por un ID y sera filtrado por fecha, como lo son:

Código PHP:

asi seria mi tabla:
id        Giro                fecha
=====================  
3      Restaurant  01-03-07
5      educativo   01
-03-07 
6      varios        01
-03-07
7      educativo   01
-03-07
8      Restaurant  01
-03-07
 
Select Giro from Apert where fecha 
'01-03-07'
en esta consulta me regresa todos de la cierta fecha 

Para eso, no se como hacerlo con sql para obtener:
tengo de....
Restaurant = 2
educativo = 2
varios = 1
Esta bien, el query deberia ser:

Código SQL [-]
SELECT ID, COUNT (GIRO), GIRO, CONVERT (VARCHAR(10), FECHA, 103) FROM Apert

Right?
Pero que si es necesario desplegar mas columnas, detallando los giros, es decir; que en una columna solo cuente los "Restaurant", en otra, solo los "Varios" y asi.... espero se entienda

se me ocurre algo asi:

Código SQL [-]
SELECT ID, COUNT (IIF (GIRO = 'Restaurant', 0, 1)) 'Restaurant', COUNT (IIF (GIRO = 'educativo', 0, 1)) 'Educativo', CONVERT (VARCHAR(10), FECHA, 103) FROM Apert

Espero me puedan ayudar...

poliburro 13-12-2007 15:44:39

Se sencillo, el problema es que el query funciona sobre giros predefinidos

Código SQL [-]
 
    Select Fecha, 
              Count(Case When Giro = "Restaurant" Then 1 
                   Else 0 
               End) As Restaurant,
              Count(Case When Giro = "educativo" Then 1 
                   Else 0 
               End) As educativo
      From Apert
 Group By Fecha


La franja horaria es GMT +2. Ahora son las 10:18:31.

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