1 00:00:00,000 --> 00:00:14,199 SQL no distingue entre mayúsculas y minúsculas, está por convenio pues es mucho más 2 00:00:17,600 --> 00:00:24,039 de mejor uso el poner por ejemplo las palabras clave ponerlas en mayúsculas y el resto en 3 00:00:24,039 --> 00:00:33,079 minúsculas. Vamos a hacerlo ahora para que lo hagamos de una manera más correcta. Vamos a 4 00:00:33,079 --> 00:00:45,119 ponerlo así y aquí tendríamos tipo, tendríamos la planta y teníamos el estado. Estos son los 5 00:00:45,119 --> 00:00:49,039 cuatro campos que queremos seleccionar. ¿De qué tabla? De habitaciones hemos visto, ¿no? Pues 6 00:00:49,039 --> 00:00:55,500 Entonces vamos a poner el From Habitaciones. 7 00:00:56,000 --> 00:01:00,979 Bien, ya tenemos la selección de los campos y desde qué tabla lo vamos a obtener. 8 00:01:01,659 --> 00:01:02,859 Vamos a poner ahora las condiciones. 9 00:01:03,259 --> 00:01:08,019 Vamos a poner el Where, puesto que nos ha puesto una serie de condiciones. 10 00:01:08,560 --> 00:01:09,459 ¿Cuáles son las condiciones? 11 00:01:10,700 --> 00:01:11,439 Vamos aquí. 12 00:01:12,040 --> 00:01:18,040 Nos está diciendo que las habitaciones están libre, ocupada o en mantenimiento. 13 00:01:19,040 --> 00:01:22,879 Con lo cual, tenemos que introducir un nuevo elemento, que es el elemento IN. 14 00:01:23,780 --> 00:01:32,760 ¿Por qué? IN se va a basar, lo vamos a utilizar cuando queremos que un conjunto de valores estén contenidos todos ellos. 15 00:01:33,120 --> 00:01:44,980 Entonces, si nosotros queremos que estén contenidos el conjunto de valores, estado, o sea, libre, ocupado y mantenimiento, se realiza a través de la cláusula IN. 16 00:01:44,980 --> 00:01:57,120 Entonces, ¿cuál es el campo implicado que tiene esos valores de libre, ocupado y mantenimiento? Pues era estado. Vamos a poner estado. 17 00:01:57,120 --> 00:02:01,420 al poner ahora el IN 18 00:02:01,420 --> 00:02:03,180 estamos diciendo que estado 19 00:02:03,180 --> 00:02:05,680 contenga un conjunto 20 00:02:05,680 --> 00:02:07,799 de valores, que van a ser justamente 21 00:02:07,799 --> 00:02:09,300 los que nos piden, que son 22 00:02:09,300 --> 00:02:09,900 libre 23 00:02:09,900 --> 00:02:17,919 libre 24 00:02:17,919 --> 00:02:19,520 ocupado 25 00:02:19,520 --> 00:02:27,770 aquí he puesto las comillas que son 26 00:02:27,770 --> 00:02:30,250 las comillas que se utilizan son las que están al lado 27 00:02:30,250 --> 00:02:31,370 del cero en el teclado 28 00:02:31,370 --> 00:02:34,530 ¿vale? y luego tendríamos 29 00:02:34,530 --> 00:02:36,710 mantenimiento 30 00:02:36,710 --> 00:02:47,009 el hecho de poner aquí esta cláusula IN 31 00:02:47,009 --> 00:02:49,669 nos está indicando que estado contenga 32 00:02:49,669 --> 00:02:52,669 un conjunto de valores que están 33 00:02:52,669 --> 00:02:54,930 aquí dentro entre paréntesis 34 00:02:54,930 --> 00:02:58,490 que contenga o bien libre o bien ocupado o bien mantenimiento 35 00:02:58,490 --> 00:03:01,330 y esa sería la primera condición que nos han pedido 36 00:03:01,330 --> 00:03:05,370 que afecta a la enumeración 37 00:03:05,370 --> 00:03:07,310 que teníamos aquí 38 00:03:07,310 --> 00:03:11,129 este valor estado era una enumeración y estamos disponiendo con IN 39 00:03:11,129 --> 00:03:14,949 y nos está diciendo que contenga tanto libre, ocupado y mantenimiento. 40 00:03:16,650 --> 00:03:21,430 Con respecto a la otra condición, nos está diciendo que cuya planta sea la 1 o la 2. 41 00:03:22,729 --> 00:03:28,110 Vamos a poner aquí debajo la otra condición, pero antes habrá que poner un AND, 42 00:03:28,310 --> 00:03:35,969 porque queremos que se cumpla la condición de estado y también se cumpla la condición de planta. 43 00:03:35,969 --> 00:03:49,629 En planta queremos que contenga un 1 o un 2. Eso es un conjunto de valores también, entonces habría que ponerlo con IN. O sea, que planta sea un 1 o un 2. 44 00:03:49,629 --> 00:04:07,819 A continuación nos dice que lo ordenemos por estado de manera ascendente, y lo ordenemos por planta de manera descendente. 45 00:04:07,819 --> 00:04:25,459 A ver si era así o no. Estado y luego por planta. No, nos dice que ordena por estado y por luego por planta, al no decir que es de manera descendente y como por defecto es ascendente, lo que vamos a hacer es que los dos sean de manera ascendente. 46 00:04:25,459 --> 00:04:50,220 Bien, vamos a ejecutarlo y veis nos va a salir el qué. Primero, código habitación, tipo, planta y estado, que son los cuatro campos que queremos seleccionar de la tabla habitaciones. Habitaciones tenía todos estos campos, pero solo queremos estos cuatro. Precio noche no lo queremos y son los que nos han aparecido. Luego, que contengan o libre o ocupado o mantenimiento. 47 00:04:50,220 --> 00:05:12,279 Todos aquellos que tengan libre mantenimiento o ocupado que aparezcan y que además la planta sea la 1 o la 2. Si veis ocupado, que también lo hemos puesto como opción de que saliera una fila con ocupado, tendría que aparecer si la planta fuera la 1 o la 2. 48 00:05:12,279 --> 00:05:36,139 Vamos a ver por qué no aparece ocupado porque posiblemente sea una planta diferente. Entonces, ¿dónde podemos ver la planta? Vamos a hacer un select. Vamos a quitar esto y vamos a seleccionar todo from habitaciones. 49 00:05:36,139 --> 00:05:50,199 Vamos a poner una mayúscula y aquí también le damos a ejecutar. 50 00:05:50,399 --> 00:05:58,439 ¿Y qué nos aparece? Es que no hemos insertado ningún valor que tenga el valor ocupado. 51 00:05:59,019 --> 00:06:06,480 Por ello, cuando le damos a esta selección, lo único que nos aparece es libre y mantenimiento. 52 00:06:07,939 --> 00:06:10,639 Bien, y con esto tendríamos también la segunda parte. 53 00:06:10,639 --> 00:06:12,920 estas dos líneas 54 00:06:12,920 --> 00:06:14,079 voy a ponerlo en rojo 55 00:06:14,079 --> 00:06:16,779 para ver que ya las hemos terminado 56 00:06:16,779 --> 00:06:20,730 y esta también 57 00:06:20,730 --> 00:06:25,540 repaso lo que hemos hecho 58 00:06:25,540 --> 00:06:27,600 hemos dicho seleccioname estos cuatro campos 59 00:06:27,600 --> 00:06:28,500 que son estos cuatro 60 00:06:28,500 --> 00:06:29,819 desde habitaciones 61 00:06:29,819 --> 00:06:33,279 donde estado esté comprendido 62 00:06:33,279 --> 00:06:35,540 o sea tenga cualquiera de estos valores 63 00:06:35,540 --> 00:06:37,819 o libre, ocupado o mantenimiento 64 00:06:37,819 --> 00:06:39,180 y además que tengan 65 00:06:39,180 --> 00:06:41,120 la planta sea la 1 o la 2 66 00:06:41,120 --> 00:06:43,600 y ordenamelo de manera ascendente 67 00:06:43,600 --> 00:06:45,480 tanto por estado como por planta. 68 00:06:46,220 --> 00:06:51,759 Bien, si vemos estado, lo ha ordenado de manera ascendente, 69 00:06:51,899 --> 00:06:54,800 puesto que lo ordena de manera alfabética, ¿lo veis? 70 00:06:55,180 --> 00:06:58,839 Y luego, con respecto a planta, también de manera ascendente, 71 00:06:58,959 --> 00:07:01,680 primero el de menor planta y luego hasta el de mayor planta. 72 00:07:01,680 --> 00:07:04,790 Bien, ya tenemos dos. 73 00:07:05,629 --> 00:07:09,029 Vamos a hacer otro elemento. 74 00:07:09,689 --> 00:07:11,310 Hacemos con un... 75 00:07:13,459 --> 00:07:14,920 Vamos a hacer, por ejemplo, el 5, 76 00:07:14,920 --> 00:07:17,839 en el que vamos a hacer este de aquí 77 00:07:17,839 --> 00:07:20,899 reservas del mismo régimen que una reserva dada 78 00:07:20,899 --> 00:07:24,240 con una subconsulta 79 00:07:24,240 --> 00:07:26,459 vamos a hacer esto de aquí 80 00:07:26,459 --> 00:07:29,560 vamos a ponerlo en rojo 81 00:07:29,560 --> 00:07:31,779 y nos está diciendo que listemos primero 82 00:07:31,779 --> 00:07:34,560 número de reserva de mi cliente de régimen y fecha de entrada 83 00:07:34,560 --> 00:07:38,259 ¿de qué tabla? de la tabla de reservas 84 00:07:38,259 --> 00:07:43,639 que tengan el mismo régimen que la reserva 85 00:07:43,639 --> 00:07:46,600 número, el mismo régimen 86 00:07:46,600 --> 00:07:50,439 que la reserva número 1. Vamos a ponerlo de color azul 87 00:07:50,439 --> 00:07:54,480 y vamos a hacerlo. Entonces, primero 88 00:07:54,480 --> 00:07:58,519 vamos a tener que coger estos cuatro campos, vamos a seleccionarlos 89 00:07:58,519 --> 00:08:05,389 y lo que vamos a hacer ahora, vamos a 90 00:08:05,389 --> 00:08:12,290 quitar esto y vamos a poner, será una 91 00:08:12,290 --> 00:08:17,459 selección también, select. Ahora vamos a seleccionar el qué 92 00:08:17,459 --> 00:08:21,680 número de reserva, de mi cliente, régimen y fecha de entrada, desde 93 00:08:21,680 --> 00:08:43,789 ¿Qué tabla? Desde la tabla reservas. Si nos fijamos en la tabla reservas, está formada por distintas columnas. No hemos cogido todas, sino que hemos cogido en la reserva, hemos cogido el cliente, el DNI del cliente, el régimen y la fecha de entrada. 94 00:08:43,789 --> 00:09:09,629 Bien, una vez que tenemos esto, vamos a poner el from. Ya lo hemos puesto. Vamos a poner la condición. Aquí iría el where. ¿Y cuál es la condición? Nos está diciendo que la condición es que régimen sea igual a 1. 95 00:09:09,629 --> 00:09:26,470 O sea, nos está diciendo, cójame las reservas del mismo régimen que la reserva dada. Entonces, habrá que hacer una subconsulta dentro de la misma consulta. Entonces, primero habrá que poner régimen que será igual a qué. 96 00:09:26,470 --> 00:09:48,879 Si por otro lado, vamos a ponerla aquí, hacemos un SELECT, seleccioname régimen desde reservas donde el número de reserva sea igual a 1. 97 00:09:49,620 --> 00:10:00,000 Si vemos esto, ¿qué nos daría? Vamos a hacerlo, vamos a quitar esto de aquí y vamos a ver qué nos daría esto. Si nosotros hacemos esto, nos daría desayuno nada más. 98 00:10:00,000 --> 00:10:13,740 Nos está diciendo que, oye, seleccioname el régimen, el régimen que tiene aquellas reservas cuyo número de reservas sea uno, como solo es una reserva, nos está diciendo que el régimen es desayuno. 99 00:10:13,740 --> 00:10:30,840 Si yo lo que quiero es el listado de mi reserva, de mi cliente, régimen y fecha de entrada de las reservas con el mismo régimen que esta de aquí, 100 00:10:30,840 --> 00:10:39,940 o sea, que quiero que me coja todas las reservas que hay que tengan el mismo régimen que la reserva número uno. 101 00:10:39,940 --> 00:10:43,240 la reserva número 1 ya hemos visto que tenía desayuno 102 00:10:43,240 --> 00:10:44,840 entonces ahora quiero que me coja 103 00:10:44,840 --> 00:10:47,000 muéstrame todas las reservas 104 00:10:47,000 --> 00:10:48,399 todos los campos 105 00:10:48,399 --> 00:10:51,220 estos cuatro campos de las reservas 106 00:10:51,220 --> 00:10:53,139 que tengan un régimen igual 107 00:10:53,139 --> 00:10:54,480 al de esta otra 108 00:10:54,480 --> 00:10:57,480 por lo tanto habrá que hacer una subconsulta 109 00:10:57,480 --> 00:10:58,399 que habrá que añadir 110 00:10:58,399 --> 00:11:00,539 la subconsulta ya la hemos hecho, es esta de aquí 111 00:11:00,539 --> 00:11:02,559 habrá que añadirla aquí 112 00:11:02,559 --> 00:11:05,379 y ponerla 113 00:11:05,379 --> 00:11:06,840 entre paréntesis 114 00:11:06,840 --> 00:11:13,110 ¿qué estamos diciendo aquí? 115 00:11:13,110 --> 00:11:20,669 primero seleccionamos la reserva la el régimen de la reserva número uno nos devolverá desayuno y 116 00:11:20,669 --> 00:11:25,529 lo que estamos diciendo ahora dame estos cuatro campos de todas las reservas cuyo régimen sean 117 00:11:25,529 --> 00:11:35,740 igual a esa vez sea ya lo ejecutó me ha dado un error vamos a ver por qué tenemos algo mal 118 00:11:43,669 --> 00:11:49,250 un régimen fecha de entrada vale esto está bien donde el régimen sea igual a 119 00:11:54,149 --> 00:11:58,610 a regímenes de reservas donde el número de reservas sea igual a 1. 120 00:12:05,259 --> 00:12:08,840 Lo he añadido todo en la misma fila y ahora no lo he dado de error. 121 00:12:08,960 --> 00:12:15,820 Nos está diciendo que vamos a hacer, primero vamos a coger 122 00:12:15,820 --> 00:12:22,000 y vamos a seleccionar todo de reservas para ver cuántas había con desayuno. 123 00:12:22,000 --> 00:12:40,120 Cortamos y vamos a poner select todo desde reservas. Le damos y veríamos que nos sale 124 00:12:40,120 --> 00:12:45,299 nada más que la misma que había. Tendríamos que a lo mejor insertar alguna reserva más. 125 00:12:45,299 --> 00:12:55,480 Vamos a hacer una inserción, vamos a hacer un insert para que tengamos dos de desayuno más. 126 00:12:55,480 --> 00:13:11,190 vale vamos a hacer en reservas vamos a insertar en reservas vamos a insertar bueno vamos a ponerlo 127 00:13:11,190 --> 00:13:26,769 diferente vamos a poner estos 5 4 este le ponemos el 2 1 vamos a insertar como está la fecha de 128 00:13:26,769 --> 00:13:34,070 entrada y está la fecha de salida tiene que ser mayor 4 6 2 7 y 18 bien vamos a poner aquí 129 00:13:34,830 --> 00:13:52,090 7, aquí 8 y aquí 9. Le ponemos el DNI distinto, por ejemplo, 44, este 44 y este 44. Le ponemos igual y ahora vamos a poner 2 de desayuno. 130 00:13:52,090 --> 00:14:35,250 Vamos a poner este desayuno. Vamos a insertarlo. Los insertamos y a ver si lo hace bien ahora. No. Vamos a poner aquí esta y esta aquí. Tenemos aquí la... 131 00:14:35,250 --> 00:14:43,340 no puedo adicionar o actualizar 132 00:14:43,340 --> 00:15:01,799 acordaros que reserva 133 00:15:01,799 --> 00:15:02,460 nos faltaba 134 00:15:02,460 --> 00:15:04,340 nreserva 135 00:15:04,340 --> 00:15:08,740 de lo que yo copio y pego 136 00:15:08,740 --> 00:15:10,379 ahora si estaría bien 137 00:15:10,379 --> 00:15:14,389 dice que no puedo 138 00:15:14,389 --> 00:15:16,129 valor 1 139 00:15:16,129 --> 00:15:19,049 estamos diciendo que nreserva 140 00:15:20,309 --> 00:15:22,610 claro le estamos poniendo 141 00:15:22,610 --> 00:15:23,809 el mismo valor 142 00:15:23,809 --> 00:15:25,870 fecha de entrada 143 00:15:25,870 --> 00:15:48,909 Vale, nos falta un valor aquí. Como no me acuerdo, vamos a quitar esto, ya sé lo que pasa. Vamos a poner select, todo, from reservas, le damos a ejecutar y había tres reservas. 144 00:15:48,909 --> 00:15:51,029 entonces vamos a borrarlo 145 00:15:51,029 --> 00:15:53,110 y ponemos la línea que hemos puesto 146 00:15:53,110 --> 00:15:54,110 vamos a 147 00:15:54,110 --> 00:15:56,909 para que se vea completa 148 00:15:56,909 --> 00:16:01,929 aquí 149 00:16:01,929 --> 00:16:05,090 y si veis nos faltaría un campo que es en reserva 150 00:16:05,090 --> 00:16:06,870 como había tres, vamos a poner la cuatro 151 00:16:06,870 --> 00:16:12,570 la cinco 152 00:16:12,570 --> 00:16:15,429 veis lo que estoy haciendo 153 00:16:15,429 --> 00:16:18,169 es un error que tenía anteriormente 154 00:16:18,169 --> 00:16:20,669 que no había metido el campo en reserva 155 00:16:20,669 --> 00:16:40,070 Y como es un autoincremento, voy poniéndoles las tres nuevas, que serían las 4, 5 y 6. Y ahora tendría que dar bien. Y veis, sigue diciendo que no puedo actualizar porque... Vamos a ver si está bien. 156 00:16:40,070 --> 00:16:45,830 Insert Reservas, tiene Reserva, Fecha de Entrada, Salida, 2, 4, 6, 8. 157 00:16:46,450 --> 00:16:52,129 Aquí hemos puesto la 4, perfecto, y esta estaría bien. 158 00:16:53,190 --> 00:16:54,649 Vamos a ponerlo así para verlo. 159 00:17:03,549 --> 00:17:06,930 Y está bien, no nos hemos equivocado en nada. 160 00:17:08,369 --> 00:17:11,589 La Fecha de Entrada, no sé aquí hayamos puesto las fechas mal. 161 00:17:11,589 --> 00:17:34,549 A ver, está la fecha de reserva, que sería ahora, la fecha de entrada, que sería el mes 4, y la de salida el 7, perfecto, el 2, el 8 y el 1 y el 9. Está bien. Y el resto está bien también. No veo error. Vamos a ver. Vamos a borrar esto para ver qué error nos aparece. 162 00:17:34,549 --> 00:18:12,880 Nos dice que, ya, pero yo no estoy actualizando, sino que estoy insertando datos. A ver, nos está diciendo que, claro, ¿qué sucede? Que habría que haber añadido primero los clientes. No puede haber una reserva sin clientes, lo habíamos fijado así. 163 00:18:12,880 --> 00:18:43,390 Entonces, por tanto, habría que añadir en clientes esos tres clientes que he añadido nuevos. Entonces, primero habrá que añadir los clientes. Vamos a ponerlo en clientes. Vamos a poner el cliente. Os lo explico. En clientes, si nos vamos a reservas, en reservas tiene una foreign key con clientes. 164 00:18:43,390 --> 00:18:47,789 Si esos clientes no aparecen, no existen, pues entonces no puede insertar esos valores. 165 00:18:48,250 --> 00:18:51,490 Mientras los clientes no existan, no puedes introducir reservas. 166 00:18:52,470 --> 00:18:54,769 Tiene su lógica. 167 00:18:55,230 --> 00:18:58,829 Entonces, primero habrá que crear, insertar valores para los clientes. 168 00:18:58,930 --> 00:19:04,210 Vamos a insertar esos clientes y vamos a insertarlo aquí. 169 00:19:05,950 --> 00:19:08,869 Entonces vamos a poner los mismos clientes que hemos puesto ahí, 170 00:19:08,869 --> 00:19:32,250 Que sería el 44. He puesto este 44 y este el 44. Vamos a hacer que se llamen igual, el teléfono igual y el email igual. Bueno, vamos a ponerlo así, aunque sean iguales. 171 00:19:32,250 --> 00:20:02,460 Entonces, ahora primero añadir a estos tres clientes, vamos a quitarles López, vamos a poner García Muñoz, este vamos a poner Martín Tara y Sánchez Opañel. 172 00:20:02,460 --> 00:20:15,539 Vale, entonces aquí en Ana García que habíamos puesto sería igual, pero vamos a quitarle, por ejemplo, esto a Martín, le quitamos esto y en Sánchez vamos a quitarle esto. 173 00:20:16,539 --> 00:20:27,579 Estamos creando dos disimulantes y luego en cuanto a fecha de alta vamos a dejar en el mes 1, en el mes 5 y en el mes 11. 174 00:20:27,579 --> 00:20:48,839 Y ya tendríamos los tres nuevos clientes. Una vez generados esos clientes, ya su DNI cliente, ya el reservas está asociado a este DNI cliente que aparece aquí, ¿lo veis? Y entonces ya sí puede realizar las reservas. Le damos y no tendría que darnos ningún problema, ¿lo veis? Ya no nos ha dado ningún problema. 175 00:20:48,839 --> 00:21:09,339 Bien, ya tenemos las dos inserciones y tenemos tres clientes más con tres reservas más. Vamos a seleccionar todo desde reservas y vemos que nos tendrá que salir los seis. 176 00:21:09,339 --> 00:21:11,539 ahora tenemos las 6 177 00:21:11,539 --> 00:21:13,759 y ya tenemos varias de desayuno 178 00:21:13,759 --> 00:21:15,640 para que podamos hacer 179 00:21:15,640 --> 00:21:16,579 la 180 00:21:16,579 --> 00:21:19,559 me ha añadido el insert 181 00:21:19,559 --> 00:21:20,759 tendría que ahora 182 00:21:20,759 --> 00:21:22,920 hacer de nuevo 183 00:21:22,920 --> 00:21:24,019 el 184 00:21:24,019 --> 00:21:26,299 tengo que hacer de nuevo 185 00:21:26,299 --> 00:21:28,980 lo que era la 186 00:21:28,980 --> 00:21:30,779 el punto 5 187 00:21:30,779 --> 00:21:33,180 entonces tendremos que hacer 188 00:21:33,180 --> 00:21:34,140 el select 189 00:21:34,140 --> 00:21:37,279 seleccioname, acordaos 190 00:21:37,279 --> 00:21:39,079 en reserva 191 00:21:39,079 --> 00:21:50,440 Era DNI cliente, régimen y fecha de entrada. 192 00:21:52,240 --> 00:21:57,700 Sí, from reservas, ¿vale? 193 00:21:57,700 --> 00:22:07,700 En donde el where era que régimen, acordaos, el régimen fuera igual al de la subconsulta, 194 00:22:07,700 --> 00:22:29,759 que es select, seleccioname régimen from reservas, donde nreserva fuera igual a 1. 195 00:22:31,740 --> 00:22:35,160 Creo que está bien. Entonces, reserva igual a 1. 196 00:22:35,160 --> 00:22:38,460 acordaos, esta subconsulta 197 00:22:38,460 --> 00:22:39,779 lo que hace es que me coge 198 00:22:39,779 --> 00:22:42,359 el régimen 199 00:22:42,359 --> 00:22:43,940 de la reserva número 1 200 00:22:43,940 --> 00:22:46,400 que acordaos que tenía desayuno 201 00:22:46,400 --> 00:22:48,160 y aquí estamos diciendo que 202 00:22:48,160 --> 00:22:49,960 oye, ahora cógeme estos cuatro campos 203 00:22:49,960 --> 00:22:52,220 desde reservas, aquellos cuyo régimen 204 00:22:52,220 --> 00:22:53,980 sea igual al de la reserva 1 205 00:22:53,980 --> 00:22:55,940 o sea, todos aquellos que tengan 206 00:22:55,940 --> 00:22:57,799 desayuno, como hemos añadido dos más 207 00:22:57,799 --> 00:22:59,420 tendrá que salir tanto 208 00:22:59,420 --> 00:23:01,920 nos saldrá 209 00:23:01,920 --> 00:23:03,940 tanto el número 1 como las dos 210 00:23:03,940 --> 00:23:06,160 nuevas que hemos añadido, vamos a darle a ejecutar 211 00:23:06,160 --> 00:23:09,859 y algo hemos hecho mal, vale, a ver 212 00:23:09,859 --> 00:23:11,859 algo he escrito mal, en reserva 213 00:23:11,859 --> 00:23:13,960 DNI cliente régimen fecha 214 00:23:13,960 --> 00:23:15,900 de entrada desde reservas, está bien 215 00:23:15,900 --> 00:23:17,420 donde régimen 216 00:23:17,420 --> 00:23:20,099 sea igual 217 00:23:20,099 --> 00:23:21,640 a que A, seleccioname 218 00:23:21,640 --> 00:23:22,279 muy bien 219 00:23:22,279 --> 00:23:25,779 régimen desde 220 00:23:25,779 --> 00:23:27,740 reservas donde N 221 00:23:27,740 --> 00:23:29,559 reserva es igual a 222 00:23:29,559 --> 00:23:30,460 1 223 00:23:30,460 --> 00:23:35,269 pues lo veo bien, vamos a poner 224 00:23:35,269 --> 00:23:41,799 y ya estaría, veis nos aparecen las tres 225 00:23:41,799 --> 00:23:44,660 si hubiéramos puesto aquí 226 00:23:44,660 --> 00:23:49,359 que me sacara en reserva 227 00:23:49,359 --> 00:23:53,039 DNI cliente, régimen y fecha de entrada desde la tabla de reservas 228 00:23:53,039 --> 00:23:56,680 que fueran distintas 229 00:23:56,680 --> 00:23:59,660 vamos a poner aquí distintas 230 00:23:59,660 --> 00:24:08,730 al de la reserva número uno, o sea desayuno 231 00:24:08,730 --> 00:24:10,109 me saldrían todas las demás. 232 00:24:11,049 --> 00:24:13,390 O sea, media pensión, pensión completa y pensión completa. 233 00:24:13,750 --> 00:24:13,930 ¿Veis? 234 00:24:15,170 --> 00:24:20,170 Y con esto tendríamos también realizada la tercera. 235 00:24:22,490 --> 00:24:26,869 ¿Qué más podemos utilizar que alguna que sea sencilla? 236 00:24:28,490 --> 00:24:32,579 Ya digo que de todas estas 12, 237 00:24:32,579 --> 00:24:51,779 El resto las haremos cuando tengamos la videoconferencia. Voy a hacer una más y lo dejamos aquí. Vamos a coger la media de importe por factura y ordenarlas, que sería la número 9, que sería esta de aquí. 238 00:24:51,779 --> 00:24:57,680 para cada factura con líneas 239 00:24:57,680 --> 00:24:59,940 mostrar en el factura 240 00:24:59,940 --> 00:25:01,579 media importe de línea 241 00:25:01,579 --> 00:25:03,599 redondada a dos decimales 242 00:25:03,599 --> 00:25:05,539 y ordenar de mayor a menor 243 00:25:05,539 --> 00:25:07,880 vamos a poner esto de color azul 244 00:25:07,880 --> 00:25:09,539 que es lo que nos está pidiendo 245 00:25:09,539 --> 00:25:10,720 entonces 246 00:25:10,720 --> 00:25:13,519 ¿qué es lo que realmente nos está pidiendo? 247 00:25:14,079 --> 00:25:16,259 para cada factura con líneas 248 00:25:16,259 --> 00:25:18,380 o sea, solo aquellas que tengan líneas 249 00:25:18,380 --> 00:25:20,039 que nos muestre todo esto 250 00:25:20,039 --> 00:25:22,700 esto es la media de importe 251 00:25:22,700 --> 00:25:25,500 en medio de importe línea 252 00:25:25,500 --> 00:25:27,460 entonces vamos aquí 253 00:25:27,460 --> 00:25:29,819 vamos a borrar esta de aquí 254 00:25:29,819 --> 00:25:35,420 y vamos a poner 255 00:25:35,420 --> 00:25:37,359 será un select igual, seleccioname 256 00:25:37,359 --> 00:25:39,859 ahora aquí, que necesitamos que nos seleccione 257 00:25:39,859 --> 00:25:41,640 nos va a tener que 258 00:25:41,640 --> 00:25:43,480 seleccionar la media 259 00:25:43,480 --> 00:25:45,559 la media 260 00:25:45,559 --> 00:25:47,819 acordaos que teníamos aquí 261 00:25:47,819 --> 00:25:52,759 facturas 262 00:25:52,759 --> 00:25:54,519 en el que las columnas de factura 263 00:25:54,519 --> 00:25:56,700 estaba nada más que en factura 264 00:25:56,700 --> 00:25:58,079 fecha factura y en reserva 265 00:25:58,079 --> 00:26:13,259 Y dentro de facturas estaban las líneas de factura que realmente son las que tienen el importe, que es lo que nos está pidiendo. Entonces, para cada factura con líneas, me vas a mostrar esas líneas a qué factura pertenecen, que será el N factura. 266 00:26:13,259 --> 00:26:34,440 Entonces, ya estaba diciendo que me seleccione el n factura. ¿Y qué más quiere? Y quiere además que me saque la media del importe de línea, redondada a dos decimales y ordenado de mayor a menor. 267 00:26:34,440 --> 00:26:58,299 Bien, vamos a poner una función que sería la que nos va a obtener la media, que sería AVG. AVG nos va a permitir obtener la media de importe. Importe sería el importe de las líneas de factura. 268 00:26:58,299 --> 00:27:15,279 Pero claro, queremos asociado a n factura. Acordaos que una n factura tiene varias líneas de factura. Entonces hay que agrupar cada factura, agrupar las líneas de factura por factura. Me explico. 269 00:27:16,200 --> 00:27:24,740 Si nosotros tenemos, esto era facturas y esto era líneas de factura. 270 00:27:24,839 --> 00:27:28,059 ¿Veis? Una factura, ¿qué va a tener? Va a tener varias líneas de factura. 271 00:27:28,200 --> 00:27:34,119 ¿Qué quiere decir? Vimos, factura era entidad fuerte, línea de factura, entidad débil. 272 00:27:34,119 --> 00:27:37,359 ¿Por qué? Porque una línea de factura es un detalle de la factura. 273 00:27:37,819 --> 00:27:42,900 Entonces, si la factura no existe, línea de factura no va a existir, por eso es una entidad débil. 274 00:27:43,319 --> 00:27:45,880 Entonces, una factura va a tener varias líneas de factura. 275 00:27:45,880 --> 00:28:00,119 Imaginaos cómo aparece aquí. Tiene la línea de factura alojamiento, la línea de desayuno y la línea de suplemento por persona extra. Las tres líneas de factura están dentro de una misma factura y por tanto tendrá una N factura aplicada. 276 00:28:00,119 --> 00:28:28,180 Si nosotros lo que queremos es obtener el importe medio, la media del importe de línea, redondada a dos decimales, habrá que agrupar por n factura, porque hemos dicho que una factura o una n factura tiene varias líneas de factura. 277 00:28:28,180 --> 00:28:41,319 Entonces, aquí habrá que añadir, vamos a ponerlo debajo, un group by, que lo agrupe por n factura. 278 00:28:44,160 --> 00:28:54,000 Al agruparlo por n factura, estamos diciendo que, luego lo veremos con un ejemplo, que para una determinada n factura habrá una serie de líneas de factura y establecerá la media. 279 00:28:54,000 --> 00:29:08,740 ¿De dónde, desde qué tabla vamos a generar esto? Vamos a hacerlo desde la tabla de líneas factura. 280 00:29:08,740 --> 00:29:14,009 también nos ha dicho 281 00:29:14,009 --> 00:29:16,369 que lo quiere agrupar 282 00:29:16,369 --> 00:29:17,950 o sea perdón 283 00:29:17,950 --> 00:29:19,789 que lo quiere ordenar de mayor a menor 284 00:29:19,789 --> 00:29:22,089 por lo tanto habrá que poner un order by 285 00:29:22,089 --> 00:29:22,509 también 286 00:29:22,509 --> 00:29:25,990 como va 287 00:29:25,990 --> 00:29:27,150 de mayor a menor 288 00:29:27,150 --> 00:29:29,789 lo que va a hacer es que va a ser 289 00:29:29,789 --> 00:29:30,769 descendente 290 00:29:30,769 --> 00:29:36,259 pero al ser de mayor 291 00:29:36,259 --> 00:29:38,420 a menor y lo queremos de manera descendente 292 00:29:38,420 --> 00:29:39,880 que es lo que queremos ordenar 293 00:29:39,880 --> 00:29:42,640 va a ser lo que vamos a ordenar es la media 294 00:29:42,640 --> 00:30:04,750 de línea de factura. Entonces, aquí, como este media del importe, lo vamos a llamar media importe línea. ¿Para qué? Para que luego lo podamos ordenar aquí 295 00:30:04,750 --> 00:30:12,140 de manera descendente por media importe línea. 296 00:30:12,660 --> 00:30:16,000 De tal manera que la media de los importes de línea 297 00:30:16,000 --> 00:30:19,119 va a aparecer de manera descendente, de mayor a menor. 298 00:30:19,960 --> 00:30:22,279 Bien, ¿qué nos quedaría más aparte de todo esto? 299 00:30:24,220 --> 00:30:26,259 Ya estaría de manera completa. 300 00:30:26,519 --> 00:30:30,059 Vamos a ver si esto... 301 00:30:30,900 --> 00:30:34,799 Bueno, nos ha quedado también que nos pide que sea redondeada 302 00:30:34,799 --> 00:30:38,299 dos decimales para redondear a dos decimales se hace con la 303 00:30:38,299 --> 00:30:42,259 primero el importe que hemos puesto aquí 304 00:30:42,259 --> 00:30:45,599 se hace con la función round 305 00:30:45,599 --> 00:30:51,980 que sería esta, lleva dos campos dentro 306 00:30:51,980 --> 00:30:55,079 uno sería el importe y luego 307 00:30:55,079 --> 00:30:59,500 el número de decimales a los que queremos redondear, que van a ser dos 308 00:30:59,500 --> 00:31:03,500 y quedaría así, esto nos haría la media del importe y 309 00:31:03,500 --> 00:31:11,480 lo redondearía a dos decimales. Vamos a ver si se ejecuta y vemos que nos aparece aquí la media 310 00:31:11,480 --> 00:31:22,319 de 450, 230 y 175. Para ver esto que hemos hecho, si es correcto o no, vamos a ver la factura 3, 311 00:31:22,319 --> 00:31:30,279 la 2 y la 1 para ver la media. Entonces vamos a quitar esto de aquí y vamos a seleccionar 312 00:31:30,279 --> 00:31:57,170 Todo from facturas, líneas, factura. Le damos y nos aparece, como nos está diciendo, aquí tendríamos que para la factura 1 tenemos alojamiento y desayuno. 313 00:31:57,170 --> 00:32:04,890 cuál sería la media de las líneas de factura de la factura 1 314 00:32:04,890 --> 00:32:08,230 sería 350 entre 2 315 00:32:08,230 --> 00:32:12,730 cuál sería la media de la factura 2 316 00:32:12,730 --> 00:32:16,289 de la línea de factura 2 sería 460 entre 2 317 00:32:16,289 --> 00:32:20,490 y la de la factura 3 sería 900 entre 2 318 00:32:20,490 --> 00:32:23,430 vamos a ver si eso realmente tendría que haber aparecido 319 00:32:23,430 --> 00:32:45,769 Hay 350 entre 2 son 175. En la factura 2 serían 460, serían 230 y en el 900 sería 450. Entonces vamos a verlo y si se corresponde o no. Y vemos que realmente es lo que está haciendo. 320 00:32:45,769 --> 00:33:23,849 ¿Qué está haciendo? Vamos a ponerlo para que quede mejor. Select as order by IDEX. Lo explicamos de nuevo. Me está diciendo, oye, seleccióname la factura, porque esta sería la primary key de facturas, la que tenemos aquí. 321 00:33:23,849 --> 00:33:27,609 facturas sería aquí 322 00:33:27,609 --> 00:33:29,789 es nfactura 323 00:33:29,789 --> 00:33:31,450 esa sería la primera equidad de factura 324 00:33:31,450 --> 00:33:34,170 primero me selecciono la factura 325 00:33:34,170 --> 00:33:35,450 ya hemos visto que hay tres facturas 326 00:33:35,450 --> 00:33:37,130 la número uno, la dos y la tres 327 00:33:37,130 --> 00:33:39,809 luego házme la media 328 00:33:39,809 --> 00:33:41,349 del importe 329 00:33:41,349 --> 00:33:44,190 pero al poner aquí un group by 330 00:33:44,190 --> 00:33:45,829 por nfactura 331 00:33:45,829 --> 00:33:46,569 me está cogiendo 332 00:33:46,569 --> 00:33:49,210 agrúpame todas las líneas de factura 333 00:33:49,210 --> 00:33:50,170 de la factura uno 334 00:33:50,170 --> 00:33:52,869 agrúpame todas las líneas de factura de la factura dos 335 00:33:52,869 --> 00:33:56,609 y agrúpame todas las líneas de factura de la factura 3. 336 00:33:57,069 --> 00:34:00,430 Me las agrupas por n facturas, o sea, por 1, por 2 y por 3, 337 00:34:00,750 --> 00:34:04,690 y de cada una de ellas hazme la media de las líneas de factura. 338 00:34:04,829 --> 00:34:08,250 Entonces coge la factura número 1 y tiene dos líneas de factura, 339 00:34:08,250 --> 00:34:14,550 lo que hace la media de su importe y la redondea a continuación a dos decimales. 340 00:34:15,969 --> 00:34:21,760 Todo eso, ponle el alias de media importe línea. 341 00:34:21,760 --> 00:34:24,880 a continuación nos dice que eso lo va a realizar 342 00:34:24,880 --> 00:34:26,500 desde el líneas de factura, lógicamente 343 00:34:26,500 --> 00:34:27,800 que es donde están las líneas de factura 344 00:34:27,800 --> 00:34:30,000 hemos dicho que lo agrupaba por nFactura 345 00:34:30,000 --> 00:34:33,119 y a su vez lo ordena por medio de este campo 346 00:34:33,119 --> 00:34:35,400 que es un importe de línea que hemos creado ahora 347 00:34:35,400 --> 00:34:37,599 que es el alias de toda esta operación 348 00:34:37,599 --> 00:34:40,460 que lo ordene de manera descendente 349 00:34:40,460 --> 00:34:41,260 y lo saca 350 00:34:41,260 --> 00:34:46,019 y lo dejamos aquí 351 00:34:46,019 --> 00:34:48,820 esta también la hemos realizado 352 00:34:48,820 --> 00:34:52,639 y nos quedarían bastantes 353 00:34:52,639 --> 00:35:05,980 pero el vídeo sería muy largo. El resto de consultas las haremos en la videoconferencia, 354 00:35:06,119 --> 00:35:09,340 puesto que son consultas muy parecidas a las que os he puesto en la tarea.