No se como escribir esto, a menudo mientras reviso un modelo estrella o un data warehouse me encuentro que al ejecutar:
select * from SalesFact
Un select para ver como está la tabla de hechos, el select que ejecuto muestra que la columna TimeId ( o como sea que la hayan llamado) trae valores como 54548, 54549,…54555. Esta columna es el campo por el que se hace join con la tabla de tiempo. A que fecha corresponden dichos números, ni idea. Habrá que hacerle un select a la tabla de tiempo y ver a que fecha corresponde el ID.
Lo mejor es no usar estos valores, es mucho más sencillo usar la fecha en formato yyyyMMdd. El resultado sigue siendo un número entero y mucho más fácil de leer
20080331 = 31 de Marzo del 2008
Para llenar la tabla de hechos no se requiere ir primero a la tabla de tiempo para ver que ID le toca a cada fecha, basta con un:
SQLServer: convert( varchar, fecha, 113)
Oracle: TO_CHAR( fecha, yyyyMMdd)
MySQL: Year(Fecha)*10000+Month(Fecha)*100+day(Fecha)
¿a poco nó?

Comentarios recientes