Ir al contenido


Foto

Ayuda con consulta


  • Por favor identifícate para responder
3 respuestas en este tema

#1 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 13 febrero 2012 - 11:23

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
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 13 febrero 2012 - 11:40

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
  • 4.483 mensajes
  • LocationVenezuela

Escrito 13 febrero 2012 - 11:47

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
  • 2.137 mensajes

Escrito 13 febrero 2012 - 02:29

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.