otra de sql

290 6
 #1
Escrito   0  0  
se os ocurre alguna forma 'eficiente' de hacer esto:

tengo una tabla con dos campos

id - mes

y la clave es id-mes, es decir, que cada id esta relacionado como mucho con los 12 meses.

como puedo sacar una consulta que me de por cada id todos los meses:

Id 1 2 3 4 5 6 7 8 9 10 11 12

la unica forma que se ma ha ocurrido es hacer 12 consultas por cada id, pero eso es una cutrez...

gracias!!!

saludos

Deutschland. Erfrischend natürlich!
 #2
Escrito   0  0  
como como?? no entiendo exactamente lo que pides, explica un poquillo mas please

Cabalgamos juntos, morimos juntos "Rebeldes para siempre"
 #3
Escrito   0  0  
Así ¿no?


Select id, mes from <tabla> order by id mes asc


esto te devolvería esto:

id | mes
--------------
1 | 1
1 | 2
1 | 3
1 | 4
1 | 5
1 | 6
1 | 7
1 | 8
1 | 9
1 | 10
1 | 11
1 | 12
2 | 1
...
 #4
Escrito   0  0  
(Usuario baneado)
 #5
Escrito   0  0  
gracias por vuestras respuestas

me explico como el (_I_) :-D

lo que quiero es que para cada id me de todos sus meses, pero todos en una linea, es decir

Id345234 mes1 mes2 mes3 ... mes12

en lugar de una linea por cada mes...

... no se si lo he dejado mucho mas claro :-(

gracias de nuevo

Deutschland. Erfrischend natürlich!
 #6
Escrito   0  0  
Suponiendo que tu tabla se llama "tabla" y tiene 2 campos que se llaman "id y "mes", y que el campo mes sea numerico(enero = 1, febrero = 2, ...) se me ocurre algo así:


select t.id, t1.mes, t2.mes, t3.mes, t4.mes,
t5.mes, t6.mes, t7.mes, t8.mes, t9.mes,
t10.mes, t11.mes, t12.mes
from tabla t, tabla t1, tabla t2, tabla t3,
tabla t4, tabla t5, tabla t6, tabla t7,
tabla t8, tabla t9, tabla t10, tabla t11,
tabla t13
where t1.id = t.id
and t1.mes = 1
and t2.id = t.id
and t2.mes = 2
and t3.id = t.id
and t3.mes = 3
and t4.id = t.id
and t4.mes = 4
and t5.id = t.id
and t5.mes = 5
and t6.id = t.id
and t6.mes = 6
and t7.id = t.id
and t7.mes = 7
and t8.id = t.id
and t8.mes = 8
and t9.id = t.id
and t9.mes = 9
and t10.id = t.id
and t10.mes = 10
and t11.id = t.id
and t11.mes = 11
and t12.id = t.id
and t12.mes = 12
order by id



No se si será demasiado eficiente, pero debería funcionar.

¿Te has planteado cambiar la estructura de la base de datos, porque me da que no está ni en 3 forma normal?
 #7
Escrito   0  0  
gracias mil karni0,

eso es lo que yo me habia imaginado. respecto a la estructura, desgraciadamente es una de esas herencias que te caen del cielo ;-)

salu2

Deutschland. Erfrischend natürlich!
Volver a Informática