SlideShare una empresa de Scribd logo
CONSULTAS CONDICIONALES
1. GROUP BY y HAVING
Combina los registros con valores idénticos, en la lista de campos especificados, en
un único registro. Para cada registro, se crea u n valor sumario si se incluye una
función SQL agregada, como SUM o COUNT (como veremos después), en la
instrucción SELECT. Su sintaxis es la siguiente:
SELECT CAMPOS
FROM TABLA
WHERE CRITERIO
GROUP BY CAMPOS DEL GRUPO
GROUP BY es opcional. Los valores de resumen se omiten si no existe una función
SQL agregada en la instrucción SELECT. Los valores NULL en los campos GROUP
BY se agrupan y no se omiten. No obstante, los valores NULL no se evalúan en
ninguna de las funciones SQL agregadas.
Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la
cláusula HAVING para filtrar los registros una vez agrupados.
A menos que contenga un dato Memo, un campo de la lista de campos GROUP BY
puede referirse a cualquier campo de las tablas que aparecen en la cláusula FROM,
incluso si el campo no está incluido en la instrucción SELECT, siempre y cuando esta
instrucción incluya al menos una función SQL agregada.
Todos los campos de la lista de campos de la instrucción SELECT deben incluirse en
la cláusula GROUP BY o como argumentos de una función SQL agregada.
ACTIVIDAD 1.1
SELECT COD_EDIF, COUNT(COD_DEP)
FROM DEPARTAMENTOS
GROUP BY COD_EDIF
Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier
registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la
cláusula HAVING.
HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que
los registros se han agrupado utilizando GROUP BY, HAVING determina cuáles de
ellos se van a mostrar. El siguiente ejemplo lista a los edificios que poseen más de 22
departamentos.
ACTIVIDAD 1.2
SELECT COD_EDIF, COUNT(COD_DEP)
FROM DEPARTAMENTOS
GROUP BY COD_EDIF
HAVING COUNT(COD_DEP) > 22
Ejemplo práctico:
Supongamos que tenemos los siguientes datos de la tabla DEPARTAMENTOS
COD_EDIF COD_DEP PRECIO_ALQXMES_DEP
EDF001 DEP101 200
EDF001 DEP102 250
EDF002 DEP202 200
EDF003 DEP103 230
EDF003 DEP304 190
Supongamos además que tenemos los siguientes datos de la tabla
DETALLECONTRATO
COD_CONT COD_EDIF COD_DEP FEC_INI_ALQ FEC_FIN_ALQ
CNT001 EDF001 DEP101 11/04/2008 10/04/2010
CNT001 EDF001 DEP102 22/05/2007 22/08/2009
CNT002 EDF002 DEP202 01/07/2007 01/08/2009
CNT003 EDF003 DEP103 02/03/2008 02/06/2009
CNT003 EDF003 DEP304 01/05/2007 01/08/2009
ACTIVIDAD 1.3
Se solicita mostrar el número de contrato y el mont o acumulado por cada contrato.
SELECT DET.COD_CONT,
MONTO=SUM(DEP.PRECIO_ALQXMES_DEP *
(DATEDIFF(MM,DET.FEC_INI_ALQ,DET.FEC_FIN_
ALQ)))
FROM DEPARTAMENTOS DEP, DETALLECONTRATO DET
WHERE DEP.COD_EDIF.=DET.COD_EDIF.
AND DEP.COD_DEP=DET.COD_DEP
GROUP BY DET.COD_CONT
ACTIVIDAD 1.4
Haciendo uso de la cláusula HAVING se filtran los datos agrupados obtenidos y
se muestra solamente los que tengan un MONTO ACUMULADO mayor de 1,000
soles.
La solución sería la siguiente:
SELECT DET.COD_CONT,
MONTO=SUM(DEP.PRECIO_ALQXMES_D
EP *
DATEDIFF ( MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ALQ ) )
FROM DEPARTAMENTOS DEP,
DETALLECONTRATO DET WHERE
DEP.COD_EDIF.=DET.COD_EDIF. AND
DEP.COD_DEP=DET.COD_DEP
GROUP BY DET.COD_CONT
HAVING SUM(DEP.PRECIO_ALQXMES_DEP *
DATEDIFF(MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ALQ))
> 100
2. SUM
Devuelve la suma del conjunto de valores contenido en un campo específico de
una consulta. Su sintaxis es:
SELECT SUM (EXPR) FROM TABLA
En donde EXPR debe ser un valor numérico y representa el nombre del campo que
contiene los datos que desean sumarse o una expresión que realiza un cálculo
utilizando los datos de dichos campos. Los operandos de EXPR pueden incluir el
nombre de un campo de una tabla, una constante o una función (la cual puede ser
intrínseca o definida por el usuario pero no otras de las funciones agregadas de
SQL).
ACTIVIDAD 1.5
Mostrar el total de área construida por código de edificio.
SELECT COD_EDIF, SUM(AREA_CONSTRUIDA_DEP) AS
AREATOTALCONSTRUIDA
FROM DEPARTAMENTOS
GROUP BY COD_EDIF
3. AVG
Calcula la media aritmética de un conjunto de valores CONTENIDO en un
campo especificado de una consulta. Su sintaxis es la siguiente:
SELECT AVG(EXPR) FROM TABLA
En donde EXPR representa el campo que contiene los datos numéricos para los
que se desea calcular la media o una expresión que realiza un cálculo utilizando
los datos de dicho campo. La media calculada por AVG es la media aritmética (la
suma de los valores dividido por el número de valor es). La función AVG no
incluye ningún campo NULL en el cálculo.
ACTIVIDAD 1.6
Calcular la edad promedio de los usuarios.
SELECT
AVG(DATEDIFF(YY,FEC_NAC_USUA,GETDATE()))
AS EDADPROMEDIO
FROM USUARIO
4. MIN, MAX
Devuelven el mínimo o el máximo de un conjunto de v alores CONTENIDO en
un campo especifico de una consulta. Su sintaxis es la siguiente:
SELECT MIN(EXPR) FROM TABLA
---
SELECT MAX(EXPR) FROM TABLA
---
SELECT MIN(EXPR) , MAX(EXPR)
FROM TABLA
En donde EXPR es el campo sobre el que se desea realizar el cálculo. EXPR puede
incluir el nombre de un campo de una tabla, una constante o una función (la cual
puede ser intrínseca o definida por el usuario pero no otras de las funciones
agregadas de SQL).
ACTIVIDAD 1.7
Calcular el haber mínimo y el haber máximo de los inquilinos.
SELECT MIN (HABER_BAS_INQ) AS ELMINIMOHABER
FROM INQUILINO
----
SELECT MAX (HABER_BAS_INQ) AS ELMAXIMOHABER
FROM INQUILINO
SELECT MIN (HABER_BAS_INQ) AS ELMINIMOHABER ,
MAX (HABER_BAS_INQ) AS ELMAXIMOHABER
FROM INQUILINO
5. COUNT
Calcula el número de registros devueltos por una co nsulta. Su sintaxis es la
siguiente:
SELECT COUNT(EXPR) FROM TABLA
En donde EXPR contiene el nombre del campo que desea contar. Los operandos
de EXPR pueden incluir el nombre de un campo de una tabla, una constante o una
función (la cual puede ser intrínseca o definida por el usuario pero no otras de las
funciones agregadas de SQL). Puede contar cualquier tipo de datos, incluso texto.
Aunque EXPR puede realizar un cálculo sobre un camp o, COUNT simplemente
cuenta el número de registros sin tener en cuenta q ué valores se almacenan en
los registros. La función COUNT no cuenta los registros que tienen campos
NULL a menos que EXPR sea el carácter comodín asterisco (* ). Si utiliza un
asterisco, COUNT calcula el número total de registros, incluyendo a quellos que
contienen campos NULL. COUNT(*) es considerablemente más rápido que
COUNT(Campo). No se debe poner el asterisco entre dobles comillas ('*').
ACTIVIDAD 1.8
Mostrar la cantidad de usuarios registrados.
SELECT COUNT(*) AS TOTAL FROM USUARIO
Si EXPR identifica a múltiples campos, la función COUNT cuenta un registro sólo
si al menos uno de los campos no es NULL. Si todos los campos especificados
son NULL, no se cuenta el registro. Hay que separar los nombres de los campos
con ‘ + ‘
SELECT COUNT(NOM_USUA + APEPATER_USUA) AS
TOTAL FROM USUARIO
ACTIVIDADES A DESARROLLAR EN CLASE
Usando TRANSACT/SQL, realice las siguientes actividades:
En la base de datos DEPARTAMENTOS.
1. Para cada inquilino muestre su nombre, apellido paterno y apellido materno y el
número de familiares que posee.
SELECT U.NOM_USUA, U.APEPATER_USUA,
COUNT(F.COD_FAMI) as
NUMERO_FAMI
FROM INQUILINO I
INNER JOIN USUARIO U
ON U.COD_USUA=I.COD_USUA
INNER JOIN FAMILIARES F
ON I.COD_USUA=F.COD_USUA
GROUP BY U.NOM_USUA, U.APEPATER_USUA
2. Muestre el contrato de menor monto.
SELECT TOP 1 DET.COD_CONT,
MONTO=SUM(DEP.PRECIO_ALQXMES_DEP *
(DATEDIFF(MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ALQ)))
FROM DEPARTAMENTOS DEP
INNER JOIN DETALLECONTRATO DET
ON DEP.COD_EDIF.=DET.COD_EDIF
AND DEP.COD_DEP=DET.COD_DEP
GROUP BY DET.COD_CONT
ORDER BY MONTO ASC
Algunas veces se desea recuperar los valores de estas funciones solamente para grupos
que satisfacen ciertas condiciones. Para hacer esto, SQL provee la cláusula HAVING,
la cual puede aparecer junto con la cláusula GROUP BY. HAVING provee una
condición sobre el grupo de duplas asociadas con cada valor de los atributos agrupados
y, en el resultado, aparecen solamente los grupos que satisfacen esta condición. Por
ejemplo.
3. Listar el nombre del edificio, área total y áre a construida del edificio, de aquellos
edificios que tienen al menos cinco (05) departamentos por piso.
SELECT E.NOM_EDIF, E.AREA_TOTAL_EDIF,
E.AREA_CONSTRUIDA_EDIF, COUNT(D.COD_DEP)
FROM EDIFICIOS E
INNER JOIN DEPARTAMENTOS D
ON E.COD_EDIF=D.COD_EDIF
GROUP BY E.NOM_EDIF, E.AREA_TOTAL_EDIF,
E.AREA_CONSTRUIDA_EDIF
HAVING COUNT(D.COD_DEP) >= 5
4. Para el edificio de nombre LOS ANGELES, muestre el área total construida por
piso.
SELECT D.PISO_DEP,
SUM(D.AREA_COSNTRUIDA_DEP) AS TOTALCONSTRUIDO
FROM EDIFICIOS E
INNER JOIN DEPARTAMENTOS D
ON E. COD_EDIF = D. COD_EDIF
AND E.NOM_EDIF= 'LOS ANGELES'
GROUP BY D.PISO_DEP

Más contenido relacionado

La actualidad más candente

Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Titiushko Jazz
 
Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)
José Toro
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
Santiago Petter Andonayre Veliz
 
SENTENCIAS SQL
SENTENCIAS SQL SENTENCIAS SQL
SENTENCIAS SQL
Jair Cruz
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
José Toro
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
guesta403644
 
Sentencias sql
Sentencias sqlSentencias sql
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
José Toro
 
Funciones hojas de calculo
Funciones hojas de calculoFunciones hojas de calculo
Funciones hojas de calculo
mhortua
 
Introducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selección
M.c. Omar Jasso
 
Trabajo final
Trabajo finalTrabajo final
Trabajo final
gmr979
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
Henry Cambal
 
Tarea 8 consultas
Tarea 8 consultasTarea 8 consultas
Tarea 8 consultas
waltermalpasoatoc
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
alexmerono
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
zankero
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Sergio Sanchez
 
2.1.1 consultas en sql
2.1.1 consultas en sql2.1.1 consultas en sql
2.1.1 consultas en sql
armiurtu
 
Conexion Visual
Conexion Visual Conexion Visual
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
Byron Eras
 
Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005
shavila
 

La actualidad más candente (20)

Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
SENTENCIAS SQL
SENTENCIAS SQL SENTENCIAS SQL
SENTENCIAS SQL
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Sentencias sql
Sentencias sqlSentencias sql
Sentencias sql
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Funciones hojas de calculo
Funciones hojas de calculoFunciones hojas de calculo
Funciones hojas de calculo
 
Introducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selección
 
Trabajo final
Trabajo finalTrabajo final
Trabajo final
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Tarea 8 consultas
Tarea 8 consultasTarea 8 consultas
Tarea 8 consultas
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
2.1.1 consultas en sql
2.1.1 consultas en sql2.1.1 consultas en sql
2.1.1 consultas en sql
 
Conexion Visual
Conexion Visual Conexion Visual
Conexion Visual
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
 
Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005
 

Similar a Consultas condicionales en sq server

Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
pabloesp
 
5 utn frba manual access 2010 funciones campos calculados
5  utn frba manual access 2010   funciones   campos calculados5  utn frba manual access 2010   funciones   campos calculados
5 utn frba manual access 2010 funciones campos calculados
Silvia O. Informática-Nticx
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupo
avhesapa
 
MANUAL DE EXEL
MANUAL DE EXELMANUAL DE EXEL
MANUAL DE EXEL
Nombre Apellidos
 
Sub consultas
Sub consultasSub consultas
Sub consultas
Melixsa
 
Plop
PlopPlop
Elaborar una presentación que describa las siguientes temáticas:(1)
Elaborar una presentación que describa las siguientes temáticas:(1)Elaborar una presentación que describa las siguientes temáticas:(1)
Elaborar una presentación que describa las siguientes temáticas:(1)
Victor Sanchez
 
Implementación de bases de datos agrupamiento y funciones de agregado
Implementación de bases de datos agrupamiento y funciones de agregadoImplementación de bases de datos agrupamiento y funciones de agregado
Implementación de bases de datos agrupamiento y funciones de agregado
M.c. Omar Jasso
 
Ti. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.ConsultasTi. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.Consultas
Juan Martinez Cataldi
 
Repaso excel
Repaso excelRepaso excel
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
BryanChacon12
 
Informatica
InformaticaInformatica
Informatica
etijaro
 
Bdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultasBdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultas
Rody Paredes
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
José Toro
 
Ejemploddl dml-ok
Ejemploddl dml-okEjemploddl dml-ok
Ejemploddl dml-ok
BB
 
Funciones en excel
Funciones en excelFunciones en excel
Funciones en excel
Gustavo Cortez
 
Tipos de funciones
Tipos de funcionesTipos de funciones
Tipos de funciones
Pauly778
 
Tipos de funciones
Tipos de funcionesTipos de funciones
Tipos de funciones
Pauly778
 
8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx
LeydyVeronicaDelgado
 
Funciones de excel
Funciones de excelFunciones de excel
Funciones de excel
Gabriela Sanchez
 

Similar a Consultas condicionales en sq server (20)

Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
 
5 utn frba manual access 2010 funciones campos calculados
5  utn frba manual access 2010   funciones   campos calculados5  utn frba manual access 2010   funciones   campos calculados
5 utn frba manual access 2010 funciones campos calculados
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupo
 
MANUAL DE EXEL
MANUAL DE EXELMANUAL DE EXEL
MANUAL DE EXEL
 
Sub consultas
Sub consultasSub consultas
Sub consultas
 
Plop
PlopPlop
Plop
 
Elaborar una presentación que describa las siguientes temáticas:(1)
Elaborar una presentación que describa las siguientes temáticas:(1)Elaborar una presentación que describa las siguientes temáticas:(1)
Elaborar una presentación que describa las siguientes temáticas:(1)
 
Implementación de bases de datos agrupamiento y funciones de agregado
Implementación de bases de datos agrupamiento y funciones de agregadoImplementación de bases de datos agrupamiento y funciones de agregado
Implementación de bases de datos agrupamiento y funciones de agregado
 
Ti. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.ConsultasTi. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.Consultas
 
Repaso excel
Repaso excelRepaso excel
Repaso excel
 
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
 
Informatica
InformaticaInformatica
Informatica
 
Bdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultasBdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultas
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Ejemploddl dml-ok
Ejemploddl dml-okEjemploddl dml-ok
Ejemploddl dml-ok
 
Funciones en excel
Funciones en excelFunciones en excel
Funciones en excel
 
Tipos de funciones
Tipos de funcionesTipos de funciones
Tipos de funciones
 
Tipos de funciones
Tipos de funcionesTipos de funciones
Tipos de funciones
 
8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx
 
Funciones de excel
Funciones de excelFunciones de excel
Funciones de excel
 

Último

665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
valerytorresmendizab
 
Las diversas Sociedades Mercantiles Mexico.pdf
Las diversas Sociedades Mercantiles Mexico.pdfLas diversas Sociedades Mercantiles Mexico.pdf
Las diversas Sociedades Mercantiles Mexico.pdf
La Paradoja educativa
 
Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024
77361565
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
100078171
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
ssusera6697f
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
JAVIER SOLIS NOYOLA
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
jecgjv
 
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptxEVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
Victor Elizalde P
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
rosannatasaycoyactay
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...
leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...
leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...
lizeth671681
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
https://gramadal.wordpress.com/
 
Todo sobre el acta constitutiva de la empresa.pdf
Todo sobre el acta constitutiva de la empresa.pdfTodo sobre el acta constitutiva de la empresa.pdf
Todo sobre el acta constitutiva de la empresa.pdf
La Paradoja educativa
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Demetrio Ccesa Rayme
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 

Último (20)

665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
 
Las diversas Sociedades Mercantiles Mexico.pdf
Las diversas Sociedades Mercantiles Mexico.pdfLas diversas Sociedades Mercantiles Mexico.pdf
Las diversas Sociedades Mercantiles Mexico.pdf
 
Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
 
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptxEVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
EVALUACION ESTUDIANTIL 2023-2024 Ecuador - Costa.pptx
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...
leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...
leyenda, mito, copla,juego de palabras ,epopeya,cantar de gestas,corrido popu...
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
 
Todo sobre el acta constitutiva de la empresa.pdf
Todo sobre el acta constitutiva de la empresa.pdfTodo sobre el acta constitutiva de la empresa.pdf
Todo sobre el acta constitutiva de la empresa.pdf
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 

Consultas condicionales en sq server

  • 1. CONSULTAS CONDICIONALES 1. GROUP BY y HAVING Combina los registros con valores idénticos, en la lista de campos especificados, en un único registro. Para cada registro, se crea u n valor sumario si se incluye una función SQL agregada, como SUM o COUNT (como veremos después), en la instrucción SELECT. Su sintaxis es la siguiente: SELECT CAMPOS FROM TABLA WHERE CRITERIO GROUP BY CAMPOS DEL GRUPO GROUP BY es opcional. Los valores de resumen se omiten si no existe una función SQL agregada en la instrucción SELECT. Los valores NULL en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores NULL no se evalúan en ninguna de las funciones SQL agregadas. Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar los registros una vez agrupados. A menos que contenga un dato Memo, un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la cláusula FROM, incluso si el campo no está incluido en la instrucción SELECT, siempre y cuando esta instrucción incluya al menos una función SQL agregada. Todos los campos de la lista de campos de la instrucción SELECT deben incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada. ACTIVIDAD 1.1 SELECT COD_EDIF, COUNT(COD_DEP) FROM DEPARTAMENTOS GROUP BY COD_EDIF Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuáles de
  • 2. ellos se van a mostrar. El siguiente ejemplo lista a los edificios que poseen más de 22 departamentos. ACTIVIDAD 1.2 SELECT COD_EDIF, COUNT(COD_DEP) FROM DEPARTAMENTOS GROUP BY COD_EDIF HAVING COUNT(COD_DEP) > 22 Ejemplo práctico: Supongamos que tenemos los siguientes datos de la tabla DEPARTAMENTOS COD_EDIF COD_DEP PRECIO_ALQXMES_DEP EDF001 DEP101 200 EDF001 DEP102 250 EDF002 DEP202 200 EDF003 DEP103 230 EDF003 DEP304 190 Supongamos además que tenemos los siguientes datos de la tabla DETALLECONTRATO COD_CONT COD_EDIF COD_DEP FEC_INI_ALQ FEC_FIN_ALQ CNT001 EDF001 DEP101 11/04/2008 10/04/2010 CNT001 EDF001 DEP102 22/05/2007 22/08/2009 CNT002 EDF002 DEP202 01/07/2007 01/08/2009 CNT003 EDF003 DEP103 02/03/2008 02/06/2009 CNT003 EDF003 DEP304 01/05/2007 01/08/2009 ACTIVIDAD 1.3 Se solicita mostrar el número de contrato y el mont o acumulado por cada contrato.
  • 3. SELECT DET.COD_CONT, MONTO=SUM(DEP.PRECIO_ALQXMES_DEP * (DATEDIFF(MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ ALQ))) FROM DEPARTAMENTOS DEP, DETALLECONTRATO DET WHERE DEP.COD_EDIF.=DET.COD_EDIF. AND DEP.COD_DEP=DET.COD_DEP GROUP BY DET.COD_CONT ACTIVIDAD 1.4 Haciendo uso de la cláusula HAVING se filtran los datos agrupados obtenidos y se muestra solamente los que tengan un MONTO ACUMULADO mayor de 1,000 soles. La solución sería la siguiente: SELECT DET.COD_CONT, MONTO=SUM(DEP.PRECIO_ALQXMES_D EP * DATEDIFF ( MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ALQ ) ) FROM DEPARTAMENTOS DEP, DETALLECONTRATO DET WHERE DEP.COD_EDIF.=DET.COD_EDIF. AND DEP.COD_DEP=DET.COD_DEP GROUP BY DET.COD_CONT HAVING SUM(DEP.PRECIO_ALQXMES_DEP * DATEDIFF(MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ALQ)) > 100
  • 4. 2. SUM Devuelve la suma del conjunto de valores contenido en un campo específico de una consulta. Su sintaxis es: SELECT SUM (EXPR) FROM TABLA En donde EXPR debe ser un valor numérico y representa el nombre del campo que contiene los datos que desean sumarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de EXPR pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). ACTIVIDAD 1.5 Mostrar el total de área construida por código de edificio. SELECT COD_EDIF, SUM(AREA_CONSTRUIDA_DEP) AS AREATOTALCONSTRUIDA FROM DEPARTAMENTOS GROUP BY COD_EDIF 3. AVG Calcula la media aritmética de un conjunto de valores CONTENIDO en un campo especificado de una consulta. Su sintaxis es la siguiente: SELECT AVG(EXPR) FROM TABLA En donde EXPR representa el campo que contiene los datos numéricos para los que se desea calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada por AVG es la media aritmética (la suma de los valores dividido por el número de valor es). La función AVG no incluye ningún campo NULL en el cálculo.
  • 5. ACTIVIDAD 1.6 Calcular la edad promedio de los usuarios. SELECT AVG(DATEDIFF(YY,FEC_NAC_USUA,GETDATE())) AS EDADPROMEDIO FROM USUARIO 4. MIN, MAX Devuelven el mínimo o el máximo de un conjunto de v alores CONTENIDO en un campo especifico de una consulta. Su sintaxis es la siguiente: SELECT MIN(EXPR) FROM TABLA --- SELECT MAX(EXPR) FROM TABLA --- SELECT MIN(EXPR) , MAX(EXPR) FROM TABLA En donde EXPR es el campo sobre el que se desea realizar el cálculo. EXPR puede incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). ACTIVIDAD 1.7 Calcular el haber mínimo y el haber máximo de los inquilinos. SELECT MIN (HABER_BAS_INQ) AS ELMINIMOHABER FROM INQUILINO ---- SELECT MAX (HABER_BAS_INQ) AS ELMAXIMOHABER FROM INQUILINO
  • 6. SELECT MIN (HABER_BAS_INQ) AS ELMINIMOHABER , MAX (HABER_BAS_INQ) AS ELMAXIMOHABER FROM INQUILINO 5. COUNT Calcula el número de registros devueltos por una co nsulta. Su sintaxis es la siguiente: SELECT COUNT(EXPR) FROM TABLA En donde EXPR contiene el nombre del campo que desea contar. Los operandos de EXPR pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos, incluso texto. Aunque EXPR puede realizar un cálculo sobre un camp o, COUNT simplemente cuenta el número de registros sin tener en cuenta q ué valores se almacenan en los registros. La función COUNT no cuenta los registros que tienen campos NULL a menos que EXPR sea el carácter comodín asterisco (* ). Si utiliza un asterisco, COUNT calcula el número total de registros, incluyendo a quellos que contienen campos NULL. COUNT(*) es considerablemente más rápido que COUNT(Campo). No se debe poner el asterisco entre dobles comillas ('*'). ACTIVIDAD 1.8 Mostrar la cantidad de usuarios registrados. SELECT COUNT(*) AS TOTAL FROM USUARIO Si EXPR identifica a múltiples campos, la función COUNT cuenta un registro sólo si al menos uno de los campos no es NULL. Si todos los campos especificados son NULL, no se cuenta el registro. Hay que separar los nombres de los campos con ‘ + ‘ SELECT COUNT(NOM_USUA + APEPATER_USUA) AS TOTAL FROM USUARIO
  • 7. ACTIVIDADES A DESARROLLAR EN CLASE Usando TRANSACT/SQL, realice las siguientes actividades: En la base de datos DEPARTAMENTOS. 1. Para cada inquilino muestre su nombre, apellido paterno y apellido materno y el número de familiares que posee. SELECT U.NOM_USUA, U.APEPATER_USUA, COUNT(F.COD_FAMI) as NUMERO_FAMI FROM INQUILINO I INNER JOIN USUARIO U ON U.COD_USUA=I.COD_USUA INNER JOIN FAMILIARES F ON I.COD_USUA=F.COD_USUA GROUP BY U.NOM_USUA, U.APEPATER_USUA 2. Muestre el contrato de menor monto. SELECT TOP 1 DET.COD_CONT, MONTO=SUM(DEP.PRECIO_ALQXMES_DEP * (DATEDIFF(MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ALQ))) FROM DEPARTAMENTOS DEP INNER JOIN DETALLECONTRATO DET ON DEP.COD_EDIF.=DET.COD_EDIF AND DEP.COD_DEP=DET.COD_DEP GROUP BY DET.COD_CONT ORDER BY MONTO ASC Algunas veces se desea recuperar los valores de estas funciones solamente para grupos que satisfacen ciertas condiciones. Para hacer esto, SQL provee la cláusula HAVING, la cual puede aparecer junto con la cláusula GROUP BY. HAVING provee una condición sobre el grupo de duplas asociadas con cada valor de los atributos agrupados y, en el resultado, aparecen solamente los grupos que satisfacen esta condición. Por ejemplo.
  • 8. 3. Listar el nombre del edificio, área total y áre a construida del edificio, de aquellos edificios que tienen al menos cinco (05) departamentos por piso. SELECT E.NOM_EDIF, E.AREA_TOTAL_EDIF, E.AREA_CONSTRUIDA_EDIF, COUNT(D.COD_DEP) FROM EDIFICIOS E INNER JOIN DEPARTAMENTOS D ON E.COD_EDIF=D.COD_EDIF GROUP BY E.NOM_EDIF, E.AREA_TOTAL_EDIF, E.AREA_CONSTRUIDA_EDIF HAVING COUNT(D.COD_DEP) >= 5 4. Para el edificio de nombre LOS ANGELES, muestre el área total construida por piso. SELECT D.PISO_DEP, SUM(D.AREA_COSNTRUIDA_DEP) AS TOTALCONSTRUIDO FROM EDIFICIOS E INNER JOIN DEPARTAMENTOS D ON E. COD_EDIF = D. COD_EDIF AND E.NOM_EDIF= 'LOS ANGELES' GROUP BY D.PISO_DEP