Jump to content


Photo

Ayuda con consulta


  • Please log in to reply
3 replies to this topic

#1 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 13 February 2012 - 11:23 AM

Compañeros, tengo dos tablas en Firebird 2.5 así:

TABLA PRESTADORES

ID_PRESTADOR  INTEGER
PRESTADOR  VARCHAR


TABLA SOLICITUDES

ID_SOLICITUD  INTEGER
ID_PRESTADOR  INTEGER// Cave foránea ,  referencia  PRESTADORES
TERMINADA VARCHAR //

Ahora bien, el campo "TERMINADA" de la tabla solicitudes puede albergar los siguientes valores ('SI', 'NO', 'NO APLICA').

Lo que necesito es una consulta que me cuente el total de solicitudes de cada prestador, además de  los diferentes valores del campo "TERMINADA" y me los agrupe por PRESTADORES, más o menos así:

PRESTADOR          TOTAL_SOLICITUDES_PRESTADOR    TERMINADA_SI    TERMINADA_NO    TERMINADA_NO_APLICA

Prestador uno                            10                                          5                        4                                1
Prestador dos                            20                                        10                        8                                2
Prestador  n                                5                                            3                        1                                1

Gracias de antemano.


  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4266 posts
  • LocationCosta Rica

Posted 13 February 2012 - 11:40 AM

Hola
Amigo no entiendo.
Y el campo TERMINADA que quieres que haga ?.
En tu ejemplo no esta como campo String, esta como numerico el dato ???
Saludos
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4483 posts
  • LocationVenezuela

Posted 13 February 2012 - 11:47 AM

Lo hice de memoria

Select Id_Prestador,
          Sum(Terminada) as TotalTerminada,
          Sum(NoTerminada) as TotalNoTerminada,
          Sum(NoAplica) as TotalNoAplica
from

(Select ID_Prestador,
          Iif(Terminada = 'SI', 1, 0)  as Terminada,
          Iif(Terminada = 'NO', 1, 0)  as NoTerminada,
          Iif(Terminada = 'NO APLICA', 1, 0)  as NoAplica
from SOLICTUDES)

group by Id_Prestador



Si da algun error avisa
  • 0

#4 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 13 February 2012 - 02:29 PM

Muchas gracias Eduardo, funciona de maravilla, es exactamente lo que necesitaba. (y) (y)

Hola
Amigo no entiendo.
Y el campo TERMINADA que quieres que haga ?.
En tu ejemplo no esta como campo String, esta como numerico el dato ???
Saludos

Gracias por tu interés Caral,  el campo sí es String (VARCHAR), lo que había que hacer era contar los registros de la tabla SOLICITUDES cuyo valor para el campo 'TERMINADA' fuera ('SI', 'NO', 'NO APLICA') respectivamente y agruparlos por prestador, que es exactamente lo que hace la solución que posteó Eduardo.

Saludos y muchas gracias compañeros.
  • 0




IP.Board spam blocked by CleanTalk.