Saltar al contenido

Consulta SQL para generar un informe mensual

Consulta SQL para generar un informe mensual

En este artículo aprenderemos cómo usar SQL Query para extraer datos de una tabla mensualmente o generar un informe mensualmente y lo implementaremos con la ayuda de un ejemplo para una mejor comprensión. Seguiremos el proceso paso a paso.

Aquí discutimos cómo extraer datos de una tabla mensualmente usando una consulta SQL con la función DATENAME (), o cómo generar un informe mensualmente.

FECHA NOMBRE ():

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 cadena.

Sintaxis:

DATENAME( required part of date,date)

Los parámetros de fecha requeridos son:

  • Año, aaaa, aa: año
  • Mes, mm, m: mes
  • Día, día, y: día. y otra parte de DateTime.

Implementar la consulta para encontrar los informes mensuales. Creamos una base de datos «SAMPLE» y una tabla «NEWJOINEE» en la base de datos «SAMPLE». Vamos a realizar los siguientes pasos para implementar esta consulta.

Paso 1: crea la base de datos

La declaración de SQL Server para crear una base de datos llamada SAMPLE es la siguiente

Consulta:

Create database SAMPLE;

Paso 2: usa la base de datos

Declaració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

Crear una tabla en una base de datos. Necesitamos ejecutar una consulta en Microsoft SQL Server. Como MySQL, Oracle, etc. Usamos 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: inserte datos en la tabla

Para insertar datos en una tabla, existe la consulta que estamos usando 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','SYTEM 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 el informe mensual

Consulta:

SELECT MAX(DATENAME(MM,DATEOFJOIN)) AS JOININGMONTH, COUNT(1) AS "TOTALEMP. JOIN"
FROM NEWJOINEE GROUP BY MONTH(DATEOFJOIN);

Producción:

¡Atención lectores! No dejes de aprender ahora. Aprenda SQL para entrevistas con Curso SQL por GeeksforGeeks.

Source link