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