En este artículo, aprenderemos SQL Query cómo extraer datos mensualmente de una tabla o generar un informe mensual y lo implementaremos con la ayuda de un ejemplo para una mejor comprensión. Seguiremos paso a paso el proceso.
Aquí discutiremos cómo extraer datos mensualmente de una tabla o generar un informe mensual con la ayuda de una consulta SQL usando la función DATENAME( ).
NOMBRE DE FECHA ( ):
Esta función es una función definida de SQL. Se utiliza para extraer una parte específica de los datos. Esta función extrae los resultados como un valor de tipo string.
Sintaxis:
DATENAME( required part of date,date)
Aquí los parámetros requeridos de la fecha serán:
- año,aaaa,aaa: Año
- mes,mm,m : Mes
- día,dy,y: Día. y otra parte de DateTime.
Con el fin de implementar la consulta para encontrar los informes mensuales. Crearemos una base de datos “SAMPLE” y crearemos una tabla “NEWJOINEE” en la base de datos llamada “SAMPLE”. Seguiremos los pasos a continuación para implementar esta consulta
Paso 1: Crear base de datos
La declaración del servidor SQL para crear una base de datos llamada SAMPLE es la siguiente
Consulta:
Create database SAMPLE;
Paso 2: usar la base de datos
instrucción SQL para cambiar el contexto de la base de datos SAMPLE de la siguiente manera:
Consulta:
Use SAMPLE;
Paso 3: tabla de creación en la base de datos
Para la creación de una tabla en una base de datos. Necesitamos ejecutar una consulta en Microsoft SQL Server. Como Mysql, Oracle, etc. Usaremos esta consulta:
Sintaxis:
create table table_name( column1 type(size), column2 type(size), . . . columnN type(size) );
Consulta:
DECLARE @date DATE; DECLARE @start_date DATE; DECLARE @end_date DATE; DECLARE @loop_date DATE; -- declaring a table variable DECLARE @dates TABLE (date DATE); -- setting the first and the last date in the month given by date SET @date = '2021/08/1'; SET @start_date = DATEFROMPARTS(YEAR(@date ), MONTH(@date ), '01'); SET @end_date = EOMONTH(@date); -- check dates SELECT @date AS cur_date, @start_date AS first_date, @end_date AS last_date; -- populating a table (variable) with all dates in a given month SET @loop_date = @start_date; WHILE @loop_date <= @end_date BEGIN INSERT INTO @dates(date) VALUES (@loop_date); SET @loop_date = DATEADD(DAY, 1, @loop_date); END; CREATE TABLE NEWJOINEE ( EMPNAME VARCHAR(25) NOT NULL, EMPCONTACT BIGINT, DATEOFJOIN DATE NOT NULL, DESIGNATION VARCHAR(20) );
Paso 4: Insertar datos en la tabla
Para insertar datos en una tabla, existe la consulta que usaremos aquí en SQL Server.
Sintaxis:
insert into table_name( value1, value2, value3,...valueN);
Consulta:
INSERT INTO NEWJOINEE VALUES ('VISHAL',9193458625,'12-JAN-2021','SYSTEM ENGINEER'), ('RAM',7856958725,'22-JAN-2021','MANAGER'), ('VIPIN',91458458625,'25-JAN-2021','SYSTEM ENGINEER'), ('VINOD',9759554664,'28-JAN-2021','MANAGER'), ('AKASH',7500554664,'18-JAN-2021','EXECUTIVE'), ('RAJ',7856958625,'02-FEB-2021','MANAGER'), ('AJAY',9756644159,'20-FEB-2021','SYSTEM ENGINEER'), ('SHYAM',919347625,'12-FEB-2021','EXECUTIVE'), ('VIPIN',91458458625,'25-FEB-2021','SYSTEM ENGINEER'), ('VIJAY',7858458625,'25-FEB-2021','EXECUTIVE'), ('VIKASH',9759554664,'28-FEB-2021','SYSTEM ENGINEER'), ('VIVEK',9193458625,'12-MAR-2021','MANAGER'), ('ANUJ',91458458625,'25-MAR-2021','EXECUTIVE'), ('AKASH',7500554664,'18-MAR-2021','MANAGER'), ('RAKESH',7845758725,'22-MAR-2021','EXECUTIVE');
Producción:
Paso 5: consulta de informe mensual
Consulta:
SELECT MAX(DATENAME(MM,DATEOFJOIN)) AS JOININGMONTH, COUNT(1) AS "TOTALEMP. JOIN" FROM NEWJOINEE GROUP BY MONTH(DATEOFJOIN);
Producción:
Publicación traducida automáticamente
Artículo escrito por ManasChhabra2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA