Modules MySales

Requêtes SQL de baseFonctionnalités

Pour créer des rapports de base, l'utilisateur doit avoir une compréhension fondamentale du fonctionnement des requêtes SQL. Il existe aujourd'hui plusieurs dialectes SQL ; cette documentation détaillera les requêtes dans le dialecte T-SQL, utilisé dans le SGBD MS SQL Server.

94 %
Précision des prévisions

Précision établie pour les produits référencés chez Drogas

15–20 %
Croissance du chiffre d'affaires

Augmentation du chiffre d'affaires chez Chudo Market après déploiement

40 %
Réduction de la casse

Réduction des démarques produits frais chez Blyzenko

Plateforme IA

Une plateforme IA relie les prévisions, le réapprovisionnement, les prix et les promos — les signaux circulent automatiquement entre les modules, synchronisant commandes, prix et campagnes en permanence.

Aperçu

Les principales commandes SQL nécessaires pour un travail de base avec les scripts SQL sont décrites ci-dessous : SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY.

Un excellent manuel SQL avec des exemples et la possibilité d'essayer différentes commandes est disponible à ce lien .

SELECT SELECT - c'est la commande de base utilisée pour sélectionner des données dans la base de données.

Cette commande est généralement utilisée avec la commande FROM, qui spécifie la table à partir de laquelle récupérer les données.

Il est également possible de sélectionner depuis plusieurs tables - cela sera décrit dans la section JOIN .

La requête SELECT par défaut se présente ainsi : SELECT colonne1, colonne2, ... FROM nom_table; colonne1, colonne2, ...

dans cette requête, ce sont les noms des champs (colonnes) de la table à partir desquels l'utilisateur souhaite obtenir des données.

Si l'utilisateur a besoin de sélectionner toutes les données, il utilise * : SELECT * FROM nom_table; Par exemple, le résultat de la requête SELECT sku_id, article_name FROM products; affichera deux colonnes avec le code SKU et le nom issus de la table PRODUCTS : Et le résultat de la requête SELECT * FROM products; affichera toutes les colonnes de la table PRODUCTS : Lors de la création de requêtes SELECT, il est conseillé d'attribuer des alias aux colonnes (noms) : SELECT column_1 SKU, column_2 STORE FROM nom_table; .

Dans cet exemple, SKU et STORE sont des alias des colonnes column_1 et column_2 - ils seront ensuite utilisés dans le travail avec le concepteur de rapports.

En savoir plus sur SELECT et essayer de l'utiliser à ce lien . Vous pouvez en savoir plus sur le concept des alias à ce lien .

En plus de la sélection standard de champs avec SELECT, vous pouvez également sélectionner des données spécifiques.

Voici les fonctions de base qui peuvent être utilisées directement dans une requête SELECT.

SELECT DISTINCT - utilisé pour sélectionner des valeurs uniques pour un champ.

Par exemple : SELECT DISTINCT column_1 FROM nom_table; . Cette requête n'affichera que les valeurs uniques dans column_1.

En savoir plus sur SELECT DISTINCT et essayer de l'utiliser à ce lien .

SELECT TOP - utilisé pour sélectionner les N premières valeurs d'un champ. Par exemple : SELECT TOP 100 column_1 FROM nom_table; .

Cette requête n'affichera que les 100 premières valeurs dans column_1.

En savoir plus sur SELECT TOP et essayer de l'utiliser à ce lien .

MIN/MAX - utilisé pour afficher les valeurs les plus petites ou les plus grandes dans une colonne.

Par exemple : SELECT MIN(column_1) FROM nom_table; . Cette requête affichera la valeur la plus petite dans column_1.

En savoir plus sur MIN / MAX et essayer de l'utiliser à ce lien .

COUNT, AVG, SUM - COUNT() compte le nombre de lignes dans une colonne ; AVG() affiche la moyenne de la colonne ; SUM() - affiche la somme de toutes les valeurs.

SELECT COUNT(column_1) FROM nom_table; . Cette requête affichera le nombre de lignes dans column_1.

SELECT AVG(column_1) FROM nom_table; . Cette requête affichera la moyenne dans column_1. SELECT SUM(column_1) FROM nom_table; .

Cette requête affichera la somme de toutes les valeurs dans column_1.

En savoir plus sur COUNT, AVG, SUM et essayer de l'utiliser à ce lien .

WHERE La commande WHERE est utilisée pour créer une condition de sélection : SELECT colonne1, colonne2, ...

FROM nom_table WHERE condition; Par exemple, si vous avez besoin de sélectionner toutes les valeurs supérieures à 10, la clause WHERE doit être indiquée : SELECT colonne1 FROM nom_table WHERE colonne1 > 10; De plus, la commande WHERE dispose d'opérateurs mathématiques tels que supérieur à, inférieur à, différent de, etc.

Ils sont utilisés lors de la définition d'une condition.

En savoir plus sur WHERE, les opérateurs disponibles et essayer de l'utiliser à ce lien .

Il peut y avoir plusieurs conditions dans WHERE ; pour les définir, les opérateurs logiques « AND », « OR », « NOT » sont utilisés.

S'il est nécessaire que les deux conditions soient remplies, AND est utilisé.

S'il est nécessaire qu'une seule des conditions soit remplie, OR est utilisé.

Si vous souhaitez que les données s'affichent lorsque la condition n'est pas remplie, NOT est utilisé.

En savoir plus sur AND, OR, NOT et essayer de les utiliser à ce lien .

Les opérateurs IN et LIKE sont des opérateurs de comparaison dans la clause WHERE.

IN permet un échantillonnage lorsqu'il y a plusieurs valeurs, par exemple : SELECT SKU_ID, ITEM_CODE FROM PRODUCTS WHERE SKU_ID in (2,4,8) Cette requête n'affichera que les SKUs dont le SKU_ID est 2, 4 ou 8.

En savoir plus sur IN et essayer de l'utiliser à ce lien .

LIKE permet à l'utilisateur de rechercher un motif donné dans les données d'une colonne, par exemple : SELECT SKU_ID, ARTICLE_NAME FROM PRODUCTS WHERE ARTICLE_NAME like (%Ham%) Cette requête affichera les SKUs dont le nom contient le mot « Ham ».

En savoir plus sur LIKE et essayer de l'utiliser à ce lien .

De plus, dans WHERE, l'utilisateur peut travailler avec des colonnes qui ont des valeurs NULL (un champ sans valeur).

Les clauses WHERE standard ne fonctionnent pas avec NULL. Vous devez utiliser les opérateurs IS NULL et IS NOT NULL.

En savoir plus sur IS NULL et IS NOT NULL et essayer de les utiliser à ce lien .

ORDER BY La commande ORDER BY permet à l'utilisateur de trier les données affichées selon certaines règles.

SELECT colonne1, colonne2, ...

FROM nom_table WHERE condition ORDER_BY colonne1 asc/desc En savoir plus sur ORDER BY et essayer de l'utiliser à ce lien .

JOIN La commande JOIN est utilisée après la commande FROM et sert à afficher dans une requête des colonnes provenant de différentes tables liées entre elles.

Ainsi, par exemple, s'il existe une table PRODUCTS avec les colonnes SKU_ID et GROUP_ID, et une table GROUPS avec les colonnes GROUP_ID et GROUP_NAME, le JOIN permettra à l'utilisateur de sélectionner les données SKU_ID et GROUP_NAME de différentes tables, tout en les reliant par GROUP_ID.

Il existe plusieurs types de JOIN : (INNER) JOIN - peut être utilisé avec ou sans le préfixe INNER - affiche uniquement les enregistrements qui ont les mêmes valeurs dans les deux tables ; LEFT JOIN - affiche tous les enregistrements de la table de gauche (telle que spécifiée par FROM) et les enregistrements correspondants de la table de droite (telle que spécifiée par JOIN) ; RIGHT JOIN - affiche tous les enregistrements de la table de gauche (telle que spécifiée par JOIN) et les enregistrements correspondants de la table de droite (telle que spécifiée par FROM) ; FULL JOIN - affiche tous les enregistrements s'il y a une correspondance dans la table de gauche ou de droite ; En savoir plus sur JOIN et essayer de l'utiliser à ce lien .

Vous pouvez étudier et essayer chaque type de JOIN plus en détail en suivant les liens : (INNER) JOIN , LEFT JOIN , RIGHT JOIN , FULL JOIN .

GROUP BY La commande GROUP BY est utilisée après la commande WHERE et sert à regrouper les données par similitude.

Ainsi, par exemple, l'utilisateur peut regrouper tous les produits ayant le même code.

Elle est utilisée lorsque des fonctions d'agrégation sont présentes après SELECT dans la requête - telles que COUNT, MAX, MIN, SUM, AVG, etc.

SELECT colonne1, sum(colonne2) FROM nom_table WHERE condition GROUP BY colonne1 ORDER_BY colonne1 asc/desc Un bon exemple d'utilisation de GROUP BY est lorsque l'utilisateur a besoin d'afficher, par exemple, les ventes pour 4 semaines (de la 10e à la 13e semaine de 2019) dans le contexte du SKU sélectionné pour deux magasins.

Dans la table SALES_SKU, les ventes sont ventilées par semaine ; nous devons additionner les ventes sur 4 semaines pour obtenir les ventes totales sur 4 semaines.

Pour ce cas, la requête sera la suivante : 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 Le résultat de l'exécution d'une telle requête est le suivant : Il est important que GROUP BY soit spécifié non seulement par SKU_ID, mais aussi par STORE_ID, car ces deux champs ne sont pas utilisés dans la fonction d'agrégation.

Et si l'utilisateur sélectionne uniquement GROUP BY SKU_ID, le système affichera une erreur indiquant que STORE_ID n'est appliqué ni dans GROUP BY ni dans aucune autre fonction d'agrégation.

En savoir plus sur GROUP_BY et essayer de l'utiliser à ce lien .