Módulos de MySales

Consultas SQL BásicasCapacidades

Para crear informes básicos, el usuario necesita un conocimiento fundamental de cómo funcionan las consultas SQL. Hoy en día existen varios dialectos SQL; esta documentación detallará las consultas en el dialecto T-SQL, que se utiliza en el DBMS MS SQL Server.

94%
Precisión de Previsión

Precisión establecida en productos en Drogas

15-20%
Crecimiento de Ingresos

Aumento de facturación en Chudo Market tras la implantación

40%
Reducción de Desperdicios

Reducción de mermas de frescos en Blyzenko

Plataforma de IA

Una plataforma de IA conecta la previsión, el reabastecimiento, los precios y las promociones — las señales fluyen automáticamente entre módulos, manteniendo pedidos, precios y campañas siempre sincronizados.

Perspectiva

A continuación se describen los principales comandos SQL que se requieren para el trabajo básico con scripts SQL: SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY.

Un excelente manual de SQL con ejemplos y la posibilidad de probar diferentes comandos está disponible en este enlace .

SELECT SELECT es el comando básico utilizado para seleccionar datos de la base de datos.

Este comando se usa habitualmente junto con el comando FROM, que especifica de qué tabla se deben obtener los datos.

También es posible seleccionar datos de varias tablas, lo cual se describe en la sección JOIN .

La consulta SELECT predeterminada tiene el siguiente aspecto: SELECT columna1, columna2, ...

FROM nombre_tabla; columna1, columna2, ...

en esta consulta son los nombres de los campos (columnas) de la tabla de los cuales el usuario desea obtener datos.

En caso de que el usuario necesite seleccionar todos los datos, se usa *: SELECT * FROM nombre_tabla; Por ejemplo, el resultado de la consulta SELECT sku_id, article_name FROM products; mostrará dos columnas con el código SKU y el nombre de la tabla PRODUCTS: Y el resultado de la consulta SELECT * FROM products; mostrará todas las columnas de la tabla PRODUCTS: Al crear consultas SELECT, es recomendable asignar alias a las columnas (nombres): SELECT columna_1 SKU, columna_2 TIENDA FROM nombre_tabla; .

En este ejemplo, SKU y TIENDA son alias de las columnas columna_1 y columna_2, y se utilizarán posteriormente en el trabajo con el diseñador de informes.

Obtenga más información sobre SELECT y pruebe cómo funciona en este enlace .

Puede aprender más sobre el concepto de alias en este enlace .

Además de la selección estándar de campos con SELECT, también puede seleccionar datos específicos.

A continuación se presentan las funciones básicas que se pueden usar directamente en una consulta SELECT.

SELECT DISTINCT: se utiliza para seleccionar valores únicos de un campo.

Por ejemplo: SELECT DISTINCT columna_1 FROM nombre_tabla; . Esta consulta mostrará únicamente los valores únicos en columna_1.

Obtenga más información sobre SELECT DISTINCT y pruébelo en este enlace .

SELECT TOP: se utiliza para seleccionar los primeros N valores de un campo.

Por ejemplo: SELECT TOP 100 columna_1 FROM nombre_tabla; .

Esta consulta mostrará únicamente los primeros 100 valores en columna_1.

Obtenga más información sobre SELECT TOP y pruébelo en este enlace .

MIN/MAX: se utiliza para mostrar el valor más pequeño o el más grande en una columna.

Por ejemplo: SELECT MIN(columna_1) FROM nombre_tabla; . Esta consulta mostrará el valor más pequeño en columna_1.

Obtenga más información sobre MIN / MAX y pruébelos en este enlace .

COUNT, AVG, SUM: COUNT() cuenta el número de filas en una columna; AVG() muestra el promedio de la columna; SUM() muestra la suma de todos los valores.

SELECT COUNT(columna_1) FROM nombre_tabla; . Esta consulta mostrará el número de filas en columna_1.

SELECT AVG(columna_1) FROM nombre_tabla; . Esta consulta mostrará el promedio en columna_1.

SELECT SUM(columna_1) FROM nombre_tabla; . Esta consulta mostrará la suma de todos los valores en columna_1.

Obtenga más información sobre COUNT, AVG, SUM y pruébelos en este enlace .

WHERE El comando WHERE se utiliza para crear una condición de selección: SELECT columna1, columna2, ...

FROM nombre_tabla WHERE condicion; Por ejemplo, si necesita seleccionar todos los valores mayores que 10, se debe indicar la cláusula WHERE: SELECT columna1 FROM nombre_tabla WHERE columna1 > 10; Además, el comando WHERE cuenta con operadores matemáticos como mayor que, menor que, diferente de, entre otros, que se utilizan al establecer una condición.

Obtenga más información sobre WHERE, los operadores disponibles y pruébelo en este enlace .

Puede haber varias condiciones en WHERE; para definirlas se usan los operadores lógicos "AND", "OR" y "NOT".

Si es necesario que se cumplan ambas condiciones a la vez, se usa AND.

Si es necesario que se cumpla al menos una de varias condiciones, se usa OR.

Si se desea que los datos se muestren cuando la condición no se cumple, se usa NOT.

Obtenga más información sobre AND, OR, NOT y pruébelos en este enlace .

Los operadores IN y LIKE son operadores de comparación en la cláusula WHERE.

IN permite realizar una selección cuando hay varios valores, por ejemplo: SELECT SKU_ID, ITEM_CODE FROM PRODUCTS WHERE SKU_ID in (2,4,8) Esta consulta mostrará únicamente aquellos SKUs cuyo SKU_ID sea 2, 4 u 8.

Obtenga más información sobre IN y pruébelo en este enlace .

LIKE permite al usuario buscar un patrón determinado en los datos de una columna, por ejemplo: SELECT SKU_ID, ARTICLE_NAME FROM PRODUCTS WHERE ARTICLE_NAME like (%Jamon%) Esta consulta mostrará aquellos SKUs que contengan la palabra "Jamon" en su nombre.

Obtenga más información sobre LIKE y pruébelo en este enlace .

También en WHERE se puede trabajar con columnas que tienen valores NULL (un campo que no tiene valor).

Las cláusulas WHERE estándar no funcionan con NULL. Se deben usar los operadores IS NULL e IS NOT NULL.

Obtenga más información sobre IS NULL e IS NOT NULL y pruébelos en este enlace .

ORDER BY El comando ORDER BY permite al usuario ordenar la salida de datos según determinadas reglas.

SELECT columna1, columna2, ...

FROM nombre_tabla WHERE condicion ORDER_BY columna1 asc/desc Obtenga más información sobre ORDER BY y pruébelo en este enlace .

JOIN El comando JOIN se usa después del comando FROM y sirve para mostrar en una consulta columnas de diferentes tablas que están relacionadas entre sí.

Por ejemplo, si existe una tabla PRODUCTS con las columnas SKU_ID y GROUP_ID, y existe una tabla GROUPS con las columnas GROUP_ID y GROUP_NAME, el JOIN permitirá al usuario seleccionar los datos SKU_ID y GROUP_NAME de diferentes tablas, vinculándolos por GROUP_ID.

Existen varios tipos de JOIN: (INNER) JOIN: se puede usar con o sin el prefijo INNER; muestra únicamente los registros que tienen los mismos valores en ambas tablas; LEFT JOIN: muestra todos los registros de la tabla izquierda (especificada en FROM) y los registros correspondientes de la tabla derecha (especificada en JOIN); RIGHT JOIN: muestra todos los registros de la tabla izquierda (especificada en JOIN) y los registros correspondientes de la tabla derecha (especificada en FROM); FULL JOIN: muestra todos los registros si hay una coincidencia en la tabla izquierda o derecha; Obtenga más información sobre JOIN y pruébelo en este enlace .

El usuario puede estudiar y probar cada tipo de JOIN con más detalle siguiendo los enlaces: (INNER) JOIN , LEFT JOIN , RIGHT JOIN , FULL JOIN .

GROUP BY El comando GROUP BY se usa después del comando WHERE y sirve para agrupar datos por similitud.

Así, por ejemplo, el usuario puede agrupar todos los productos que tienen el mismo código.

Se utiliza cuando hay funciones de agregación después de SELECT en la consulta, como COUNT, MAX, MIN, SUM, AVG, etc.

SELECT columna1, sum(columna2) FROM nombre_tabla WHERE condicion GROUP BY columna1 ORDER_BY columna1 asc/desc Un buen ejemplo del uso de GROUP BY es cuando el usuario necesita mostrar, por ejemplo, las ventas de 4 semanas (de la semana 10 a la 13 de 2019) en el contexto del SKU seleccionado para dos tiendas.

En la tabla SALES_SKU, las ventas están desglosadas por semana; necesitamos sumar las ventas de las 4 semanas para obtener el total.

Para tal caso, la consulta se verá así: SELECT sku_id, store_id, sum(sales_volume) vol FROM sales_sku WHERE sku_id = 93 and week between 201910 and 201913 and store_id in (1,2) GROUP BY sku_id, store_id ORDER_BY vol asc El resultado de ejecutar dicha consulta es el siguiente: Es importante que GROUP BY debe especificarse no solo por SKU_ID, sino también por STORE_ID, ya que estos dos campos no se usan en la función de agregación.

Si el usuario selecciona solo GROUP BY SKU_ID, el sistema dará un error indicando que STORE_ID no se aplica ni en GROUP BY ni en ninguna otra función de agregación.

Obtenga más información sobre GROUP_BY y pruébelo en este enlace .