Ver Mensaje Individual
  #9  
Antiguo 19-09-2012
MDante MDante is offline
Registrado
NULL
 
Registrado: sep 2012
Posts: 3
Reputación: 0
MDante Va por buen camino
Consulta

Hola fjcg02 soy un novato en programación de bases de datos hace tiempo que busco resolver el problema de presentar información de esta manera

Código:
Clavealumno     horaentrada           diames1   diames2   diames3   diames4   hasta el dia 31 del X mes

1                 8:30 am             8:25am    8:20am    8:50 am   9:28 am   ----------------------->
he utilizado el fragmento de código que compartiste sin embargo hasta el momento no logro hacerlo funcionar mi versión de firebird es la 2.1 y la ejecuto tanto en ibexpert como en firebird maestro y el resultado es el mismo ingrese los datos como sugieres el archivo de word en una tabla llamada testing con columnas llamadas NOMBRE, FECHA, TIPO, IMPORTE y los importe a la base de datos y cada vez que ejecuto el procedimiento desde cualquiera de los dos programas mencionados con los parametros

(TABLA = TESTING )( CAMPO_VISUALIZAR = NOMBRE)( CAMPO_PIVOTE = FECHA) (CONDICIONES = VACIO)

y el resultado no importa que combinación de parámetros use el error siempre es:
Engine Error (code = 335544569):
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
TESTING.
At line 2, column 21.

SQL Error (code = -206):
Column does not belong to referenced table


aunque esto solo era para un proyectito para ganar algunos puntos en la escuela los cuales ya no me gane jeje me esta volviendo loco ya que dure varios días intentando resolver este problema, MS SQL ya lo hace pero me siento a un paso de lograrlo en firebird por eso sigo persistiendo.

tambien he utilizado este tipo de query pero solo me devuelve valores 1 y 0 aunque si con una elegante tabla como yo necesito, esto es en la copia de la base de datos que nos da la escuela
la cual tiene como estructura: TABLA ASISTENCIA
COLUMNAS CLAVEALUMNO(INT) ENTRADA(TIMESTAMP) REGISTROENTRADA(TIMESTAMP)


Código SQL [-]
select distinct 
    clavealumno as clave,
    count( registroentrada) as entrada,
    count( case when extract (day from entrada) = 1 then cast(asistencia.REGISTROENTRADA as date) end ) as dia1,
    count( case when extract (day from entrada) = 2 then cast(entrada as date) end ) as dia2,
    count( case when extract (day from entrada) = 3 then cast(entrada as date) end ) dia3,
    count( case when extract (day from entrada) = 4 then cast(entrada as date) end ) dia4,
    count( case when extract (day from entrada) = 5 then cast(entrada as date) end ) dia5,
    count( case when extract (day from entrada) = 6 then cast(entrada as date) end ) dia6,
    count( case when extract (day from entrada) = 7 then cast(entrada as date) end ) dia7,
    count( case when extract (day from entrada) = 8 then cast(entrada as date) end ) dia8,
    count( case when extract (day from entrada) = 9 then cast(entrada as date) end ) dia9,
    count( case when extract (day from entrada) = 10 then cast(entrada as date) end ) dia10,
    count( case when extract (day from entrada) = 11 then cast(entrada as date) end ) dia11,
    count( case when extract (day from entrada) = 12 then cast(entrada as date) end ) dia12,
    count( case when extract (day from entrada) = 13 then cast(entrada as date) end ) dia13,
    count( case when extract (day from entrada) = 14 then cast(entrada as date) end ) dia14,
    count( case when extract (day from entrada) = 15 then cast(entrada as date) end ) dia15
from asistencia
where 
   (
      (clavealumno < 400)
   and 
      (registroentrada between cast('10/1/2010'as date) and cast('10/15/2010' as date))
   )
group by clavealumno
order by 1

ojala alguien mas que vea el tema aporte sus valiosos conocimientos para lograr hacer un query funcional ya que en ningún lado de la red alguien a compartido algo similar

les dejo una copia de la tabla de la base de datos con información real de entre octubre de 2009 hasta octubre 2011 aprox sobre clave, horario de entrada y registroentrada

https://skydrive.live.com/redir?resi...JwNTFW0rK0bA00

saludos

Última edición por Casimiro Notevi fecha: 19-09-2012 a las 02:38:57.
Responder Con Cita