Consulta SQL para hacer un informe mensual

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *