viernes, 10 de junio de 2011

Implementación de consultas en SQL SERVER

CONSULTA JOIN

Ejemplo 1:

SELECT A.N_NOMBRE, D.N_HOTEL, C.D_INICIO, C.D_FIN
FROM PARTICIPANTE A
JOIN JUGADOR B ON B.C_JUGADOR = A.C_ASOCIADO
JOIN PARTICIPANTE_HOTEL C ON A.C_ASOCIADO = C.C_ASOCIADO
JOIN HOTEL D ON C.C_HOTEL = D.C_HOTEL


Ejemplo 2:

SELECT  A.N_MEDIO, D.N_HOTEL
FROM MEDIO_COMUNICACION A
JOIN SALA_MEDIO_COMUNICACION B ON A.C_MEDIO = B.C_MEDIO
JOIN SALA C ON B.C_HOTEL = C.C_HOTEL AND B.N_SALA = C.N_SALA
JOIN HOTEL D ON C.C_HOTEL = D.C_HOTEL


CONSULTA GROUP BY :

Ejemplo 1:

SELECT A.N_HOTEL, SUM(B.Q_CAPACIDAD) AS Q_TOTAL
FROM SALA B
JOIN HOTEL A ON A.C_HOTEL = B.C_HOTEL
GROUP BY A.N_HOTEL


Ejemplo 2:

SELECT A.N_PAIS, COUNT(B.C_ASOCIADO) AS Q_PARTICIPANTES
FROM PAIS A
JOIN PARTICIPANTE B ON A.C_PAIS = B.C_PAIS
GROUP BY A.N_PAIS

CONSULTA HAVING
Ejemplo 1:

SELECT A.N_HOTEL, COUNT(B.C_HOTEL)
FROM HOTEL A
JOIN SALA B ON A.C_HOTEL = B.C_HOTEL
GROUP BY A.N_HOTEL
HAVING COUNT(B.C_HOTEL) > 4


Ejemplo 2:

SELECT A.#_PARTIDA , COUNT (B.#_ORDEN) AS Q_MOVIMIENTOS
FROM PARTIDA A
JOIN MOVIMIENTO B ON A.#_PARTIDA = B.#_PARTIDA
GROUP BY A.#_PARTIDA
HAVING COUNT (B.#_ORDEN) > 1


CONSULTA OUTER JOIN

Ejemplo 1:

SELECT B.N_PAIS, A.N_NOMBRE
FROM PARTICIPANTE A
INNER JOIN JUGADOR C ON A.C_ASOCIADO = C.C_JUGADOR
FULL OUTER JOIN PAIS B ON B.C_PAIS=A.C_PAIS


Ejemplo 2:

SELECT D.N_HOTEL, C.D_INICIO, C.D_FIN, A.N_NOMBRE
FROM PARTICIPANTE A
INNER JOIN JUGADOR B ON A.C_ASOCIADO = B.C_JUGADOR
INNER JOIN PARTICIPANTE_HOTEL C ON A.C_ASOCIADO = C.C_ASOCIADO
FULL OUTER JOIN HOTEL D ON C.C_HOTEL = D.C_HOTEL


CONSULTA JOIN, WHERE, GROUP BY, HAVING

Ejemplo 1:

SELECT A.N_PAIS, COUNT (B.C_ASOCIADO) AS Q_JUGADORES
FROM PAIS A
JOIN PARTICIPANTE B ON A.C_PAIS = B.C_PAIS
JOIN JUGADOR C ON C.C_JUGADOR = B.C_ASOCIADO
WHERE A.Q_CLUBS_AJEDREZ > 5
GROUP BY A.N_PAIS
HAVING COUNT (B.C_ASOCIADO) > 2

Ejemplo 2:

SELECT B.N_NOMBRE, COUNT (D.#_PARTIDA) AS #_PARTIDAS
FROM PAIS A
JOIN PARTICIPANTE B ON A.C_PAIS = B.C_PAIS
JOIN JUGADOR C ON B.C_ASOCIADO = C.C_JUGADOR
JOIN PARTIDA D ON C.C_JUGADOR = D.C_JUGADOR1 OR C.C_JUGADOR = D.C_JUGADOR2
WHERE C.Q_NIVEL > 5
GROUP BY B.N_NOMBRE
HAVING COUNT (D.#_PARTIDA) > 4

No hay comentarios:

Publicar un comentario