Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2013, 04:56
joserodriguezan
 
Fecha de Ingreso: noviembre-2013
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 10 años, 6 meses
Puntos: 0
Problema con un ejercicio de MYSQL

Hola a todos,

Tengo que hacer un ejercicio que me esta dando problemas en mysql.

Teniendo tres tablas:
Código SQL:
Ver original
  1. HOTEL (CodHot, nombre, direccion, ciudad, telefono, num_plazas, CodSuc)
  2. ON {CodSuc} REFERENCIA SUCURSAL (CodSuc)
  3.  
  4. TURISTA (CodTur, nombre, apellidos, direecion, telefono, CodSuc)
  5. ON {CodSuc} REFERENCIA SUCURSAL (CodSuc)
  6.  
  7. ALOJAMIENTO (CodTur, fecha_ini, CodHot, facha_salida, regimen)
  8. ON {CodTur} REFERENCIA TURISTA (CodTur)
  9. ON {CodHot} REFERENCIA HOTEL (CodHot)
El ejercicio dice que por cada por cada alojamiento contratado muestre los apellidos y nombres del turista en una columna seperada(ejemplo Sil Sil, Anotnio), nombre del hotel en mayusculas, fecha de inicio y el numero de dias que se ha alojado. Ordenado por nombre del hotel y despues por los apellidos.
Código MySQL:
Ver original
  1. select distinct t.CodTur, concat(t.cognoms,',',t.nom), UPPER(h.nom), a.data_ini, datediff (a.data_sortida,a.data_ini) as dies
  2. from turista t,allotjament a,hotel h
  3. where t.CodTur=a.CodTur
  4. order by h.nom, t.cognoms;

Mi problema viene en que se repite muchas veces:
Código MySQL:
Ver original
  1. +--------+-----------------------------+--------------------+------------+------
  2. +
  3. | CodTur | concat(t.cognoms,',',t.nom) | UPPER(h.nom) | data_ini | dies
  4. |
  5. +--------+-----------------------------+--------------------+------------+------
  6. +
  7. | 5 | Capdevila Sánchez,Laia | GRAN HOTEL | 2013-09-01 | 19
  8. |
  9. | 4 | Comas Garcia,Laia | GRAN HOTEL | 2013-09-01 | 1
  10. |
  11. | 4 | Comas Garcia,Laia | GRAN HOTEL | 2013-09-03 | 1
  12. |
  13. | 4 | Comas Garcia,Laia | GRAN HOTEL | 2013-09-05 | 1
  14. |
  15. | 4 | Comas Garcia,Laia | GRAN HOTEL | 2013-09-07 | 1
  16. |
  17. | 1 | Miralles Garcia,Albert | GRAN HOTEL | 2013-09-01 | 2
  18. |
  19. | 1 | Miralles Garcia,Albert | GRAN HOTEL | 2013-09-04 | 2
  20. |
  21. | 1 | Miralles Garcia,Albert | GRAN HOTEL | 2013-09-07 | 3
  22. |
  23. | 3 | Royo Royo,Josep Mª | GRAN HOTEL | 2013-09-01 | 3
  24. |
  25. | 3 | Royo Royo,Josep Mª | GRAN HOTEL | 2013-09-06 | 4
  26. |
  27. | 2 | Sánchez Pérez,Adrià | GRAN HOTEL | 2013-09-01 | 3
  28. |
  29. | 2 | Sánchez Pérez,Adrià | GRAN HOTEL | 2013-09-07 | 4
  30. |
  31. | 5 | Capdevila Sánchez,Laia | HOTEL DIAGONAL MAR | 2013-09-01 | 19
  32. |
  33. | 4 | Comas Garcia,Laia | HOTEL DIAGONAL MAR | 2013-09-01 | 1
  34. |
  35. | 4 | Comas Garcia,Laia | HOTEL DIAGONAL MAR | 2013-09-03 | 1

y continua todos los turistas aparecen como si hubiesen estado en todos los hotesles.

Cuando si voy a la tabla de alojamiento me encuntro con esto:

Código MySQL:
Ver original
  1. mysql> select * from allotjament;
  2. +--------+------------+--------+--------------+-------------------+
  3. | CodTur | data_ini | CodHot | data_sortida | regim |
  4. +--------+------------+--------+--------------+-------------------+
  5. | 1 | 2013-09-01 | 100 | 2013-09-03 | mitja pensió |
  6. | 1 | 2013-09-04 | 103 | 2013-09-06 | mitja pensió |
  7. | 1 | 2013-09-07 | 105 | 2013-09-10 | pensió complerta |
  8. | 2 | 2013-09-01 | 100 | 2013-09-04 | mitja pensió |
  9. | 2 | 2013-09-07 | 103 | 2013-09-11 | mitja pensió |
  10. | 3 | 2013-09-01 | 100 | 2013-09-04 | mitja pensió |
  11. | 3 | 2013-09-06 | 103 | 2013-09-10 | mitja pensió |
  12. | 4 | 2013-09-01 | 100 | 2013-09-02 | pensió complerta |
  13. | 4 | 2013-09-03 | 103 | 2013-09-04 | pensió complerta |
  14. | 4 | 2013-09-05 | 105 | 2013-09-06 | pensió complerta |
  15. | 4 | 2013-09-07 | 101 | 2013-09-08 | pensió complerta |
  16. | 5 | 2013-09-01 | 100 | 2013-09-20 | pensió complerta |
  17. +--------+------------+--------+--------------+-------------------+


Esta es la tabla entera de hotel
Código MySQL:
Ver original
  1. 12 rows in set (0.00 sec)
  2.  
  3. +--------+--------------------+---------------+---------------+-----------+-----
  4. -------+--------+
  5. | CodHot | nom | adreca | ciutat | telefon | num_
  6. places | CodSuc |
  7. +--------+--------------------+---------------+---------------+-----------+-----
  8. -------+--------+
  9. | 100 | Hotel Gran via | Gran Via | Barcelona | 931234567 |
  10. 120 | 100 |
  11. | 101 | Hotel Diagonal Mar | Diagonal | Barcelona | 932345678 |
  12. 100 | 100 |
  13. | 102 | Gran Hotel | C/ Mondragón | Barcelona | 933456789 |
  14. 90 | 100 |
  15. | 103 | Gran Hotel | C/ Llull | Girona | 934567890 |
  16. 60 | 101 |
  17. | 104 | Hoteles Hilken | C/ Llacuna | Girona | 935678901 |
  18. 30 | 101 |
  19. | 105 | Gran Hotel | C/ Bonavista | Castelldefels | 936789012 |
  20. 120 | 101 |
  21. +--------+--------------------+---------------+---------------+-----------+-----
  22. -------+--------+

A ver si alguien me puede ayudar gracias,

Última edición por gnzsoloyo; 03/11/2013 a las 07:21