Práctica Asignaturas XQuery

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

1. Indicar cada uno de los nombres de las asignaturas con la etiqueta "lasasignaturas".

for $lasasignaturas in doc('asignaturas.xml')/asignaturas/asignatura/nombre return$lasasignaturas

2. Indicar los nombres de las asignaturas seguidos con el número de plazas entre
paréntesis, ambos dentro de la misma etiqueta "lasasignaturas".

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura


return concat($asignatura/nombre, ' (', $asignatura/plazas, ')')

3. Indicar los nombres de las asignaturas cuyo precio sea mayor de 30.

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura[precio > 30]


return $asignatura/nombre

4. Indicar los nombres de las asignaturas cuyo precio sea mayor de 30 y la moneda "euro".

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura[precio > 30 and


precio/@moneda = "euro"]
return $asignatura/nombre

5. Indicar los nombres y la fecha de comienzo de las asignaturas que comiencen el mes de
enero (utiliza para buscarlo la cadena de texto "/1/").

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura[contains(comienzo, '/1/')]


return concat($asignatura/nombre, ' - ', $asignatura/comienzo)

6. Indicar los nombres de los profesores y el aula en la que dan clase, ordénalos por aula.

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura


order by $asignatura/aula
return concat($asignatura/profesor, ' - Aula ', $asignatura/aula)

7. Indicar los nombres de los profesores eliminando los repetidos y acompañar cada
nombre con todas las aulas en la que da clase, ordénalos por nombre.
for $profesor in distinct-values(doc("asignaturas.xml")/asignaturas/asignatura/profesor)
let $aulas := doc("asignaturas.xml")/asignaturas/asignatura[profesor = $profesor]/aula
order by $profesor
return
<profesor>
{$profesor}
{$aulas}
</profesor>

Indicar la media de los precios de todas las asignaturas.


let $precios := doc("asignaturas.xml")/asignaturas/asignatura/precio
return avg($precios)

8. Indicar la suma de los precios de las asignaturas del aula 1.


sum(doc("asignaturas.xml")/asignaturas/asignatura[aula = 1]/precio)

Indicar cuántas plazas en total oferta el profesor "David Martin".

sum(doc("asignaturas.xml")/asignaturas/asignatura[profesor = "David Martin"]/plazas)

9. Indicar el sueldo que ganaría la profesora "Marta Lolailo" si se completaran todas las
plazas de su asignatura, sabiendo que sólo tiene una asignatura.

let $asignatura := doc("asignaturas.xml")/asignaturas/asignatura[profesor[contains(., 'Marta')]]


return $asignatura/plazas * $asignatura/precio

10. Indicar el sueldo que ganaría el profesor "David Martin" si se completaran todas las
plazas de su asignatura, pero mostrando el beneficio de cada asignatura por separado.

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura[profesor = "David Martin"]


return $asignatura/nombre || ' - ' || $asignatura/plazas * $asignatura/precio

11. Indicar el sueldo que ganaría la profesora "Marta" (no conocemos su apellido) si se
completaran todas las plazas de su asignatura.

let $profesora := doc("asignaturas.xml")/asignaturas/asignatura[profesor[contains(., 'Marta')]]


let $precio := $profesora/precio
let $plazas := $profesora/plazas
return $precio * $plazas

12. Indicar el nombre de la asignatura, su precio y el precio con un descuento del 15% para
familias numerosas. Ordenar por el nombre de la asignatura

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura


order by $asignatura/nombre
return <asignatura>{$asignatura/nombre, $asignatura/precio, $asignatura/precio * 0.85}</asignatura>

13. Indicar todos los datos de cada asignatura excepto la fecha de comienzo y de fin.

for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura


return
<asignatura>
{
$asignatura/(nombre, precio, plazas, profesor, aula)
}
</asignatura>
14. Indicar en una tabla de HTML los nombres de las asignaturas y su profesor, cada uno en
una fila.

let $tabla :=
<table>
<tr>
<th>Nombre de la asignatura</th>
<th>Profesor</th>
</tr>
{
for $asignatura in doc("asignaturas.xml")/asignaturas/asignatura
return
<tr>
<td>{$asignatura/nombre}</td>
<td>{$asignatura/profesor}</td>
</tr>
}
</table>

return $tabla

También podría gustarte