github / codespaces-nextjs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Checkpoint requête de données

macdi011 opened this issue · comments

create database CELLOU_DIALL;
use CELLOU_DIALL;
create table customer (
customer_id int primary key,
customer_Name varchar(30)not null,
customer_Tel varchar(30) not null
);
insert into customer values (1, 'fatou','77120');
insert into customer values (2, 'cellou','77843' );
insert into customer values (3,'awa','77187');

select*from customer;

CREATE TABLE product (
product_id int primary key,
product_name varchar(30) not null,
catogory varchar(30) not null,
Price int NOT NULL
);

insert into product values (1, 'widget', 'SMARTPHONE',10), (2, 'gadget', 'ELECTRO',15 ),
(3,'dohickey','sante',20);

select*from product;

create table orders (
orders_id int primary key ,
product_id int ,
customer_id int ,
quantity int,
OrdersDate varchar(30) NOT NULL,
total_amount int,
constraint FK_customer foreign key (customer_id)references customer(customer_id),
constraint FK_product foreign key (product_id) references product(product_id)
);
insert into orders values (1,1,1,5, '28-01-2023','50');
insert into orders values (2,2,2,7,'20-01-2023','105');
insert into orders values (3,1,2,10,'30-01-2023','200');

select*from orders;

use CELLOU_DIALL;
--1 requête SQL pour récupérer les noms des clients qui ont passé une commande d'au moins un widget et d'au moins un gadget
-- ainsi que le coût total des widgets et gadget commandés par chaque client
--Le coût de chaque article doit être calculé en multipliant la quantité par le prix du produit.

select customer.customer_Name, SUM(quantity * product.Price) as 'coût total'
from customer
inner join product on customer.customer_id = product.product_id
inner join orders on product.product_id = orders.product_id
where product.product_name = 'widget' OR product.product_name = 'gadget'
group by customer.customer_Name;

use CELLOU_DIALL;
--requête pour récupérer les noms des clients qui ont passé une commande pour au moins un widget
--ainsi que le coût total des widgets commandés par chaque client.

SELECT customer.customer_Name, SUM(quantity * product.price) AS 'coût total'

from customer
INNER JOIN product on customer.customer_id = product.product_id
INNER JOIN orders on product.product_id = orders.product_id
where product.product_name = 'widget'
group by customer.customer_Name;

use CELLOU_DIALL;
-- requête pour récupérer les noms des clients qui ont commandé au moins un gadget,
-- ainsi que le coût total des gadget commandés par chaque client.

select customer.customer_Name, SUM(quantity * product.price) as 'coût total'
from customer
inner join product ON customer.customer_id = product.product_id
inner join orders ON product.product_id = orders.product_id
where product.product_name = 'gadget'
group by customer.customer_Name;

use CELLOU_DIALL;

--Écrivez une requête pour récupérer les noms des clients qui ont commandé au moins un dohickey
-- ainsi que le coût total des doohickey commandés par chaque client.
select customer_Name, sum(quantity*price) as'coût total'
from customer
inner join orders on customer.customer_id = orders.customer_id
inner join product on orders.product_id = product.product_id
where product.product_name = 'dohickey'
group by customer.customer_Name;

use CELLOU_DIALL;

-- requête pour récupérer le nombre total de widgets et de gadgets commandés par chaque client,
-- ainsi que le coût total des commandes.

select
cl.Customer_name,
sum(quantity) AS 'Nombre Total',
sum(quantity * p.price) AS 'coût total des commandes'
from Customer cl
join
Product p on cl.Customer_id = p.product_id
join
Orders o on p.Product_id = o.Product_id
where
p.Product_name IN ('widget', 'gadget')
group by
cl.Customer_name;

--  une requête pour récupérer les noms des clients qui ont commandé au moins un gadget,

-- ainsi que le coût total des gadget commandés par chaque client.

SELECT customer.customer_Name, SUM(quantity * product.price) AS 'coût total'

FROM customer
INNER JOIN product ON customer.customer_id = product.product_id
INNER JOIN orders ON product.product_id = orders.product_id
WHERE product.product_name = 'gadget'
GROUP BY customer.customer_Name;
-- une requête pour récupérer les noms des clients qui ont commandé au moins un dohickey,
-- ainsi que le coût total des doohickey commandés par chaque client.

SELECT customer.customer_Name, SUM(quantity * product.price) AS 'coût total'
FROM customer
INNER JOIN orders ON customer.customer_id = orders.customer_id
INNER JOIN product ON orders.product_id = product.product_id
WHERE product.product_name = 'dohickey'
GROUP BY customer.customer_Name;
--requête pour récupérer le nombre total de widgets et de gadgets commandés par chaque client,
-- ainsi que le coût total des commandes.
SELECT
cl.Customer_name,
SUM(CASE WHEN p.Product_name = 'widget' THEN o.quantity ELSE 0 END) AS 'Nombre Total de Widgets',
SUM(CASE WHEN p.Product_name = 'gadget' THEN o.quantity ELSE 0 END) AS 'Nombre Total de Gadgets',
SUM(o.quantity * p.price) AS 'Coût Total des Commandes'
FROM
Customer cl
JOIN
Product p ON cl.Customer_id = p.product_id
JOIN
Orders o ON p.Product_id = o.Product_id
WHERE
p.Product_name IN ('widget', 'gadget')
GROUP BY
cl.Customer_name;

-- Écrivez une requête pour récupérer les noms des produits qui ont été commandés par au moins un client
--ainsi que la quantité totale de chaque produit commandé.
SELECT 
p.Product_name, 
SUM(o.quantity) AS 'la quantité totale'

FROM
Product p
JOIN
Orders o ON p.Product_id = o.Product_id
GROUP BY
p.Product_name
HAVING
SUM(o.quantity) >= 1;

--Écrivez une requête pour récupérer les noms des clients qui ont passé le plus de commandes
--ainsi que le nombre total de commandes passées par chaque client.
SELECT
cl.Customer_name,
MAX(total_amount) AS 'le Montant total de commande'
FROM
Customer cl
JOIN
Orders o ON cl.Customer_id = o.Customer_id
GROUP BY
cl.Customer_id, cl.Customer_name;

-- requête pour récupérer les noms des produits les plus commandés, 

--ainsi que la quantité totale de chaque produit commandé.

SELECT Product_name, sum(quantity) 'les noms des produits les plus commandés'
FROM Customer cl
JOIN Product p
ON cl.Customer_id = p.Product_id
JOIN Orders o
ON p.Product_id = o.Product_id
GROUP BY Product_name;
--Écrivez une requête pour récupérer les noms des clients qui ont passé une commande chaque jour de la semaine
--ainsi que le nombre total de commandes passées par chaque client.
SELECT Customer_name, sum(quantity) 'le nombre total de commandes passées par chaque client'
FROM Customer cl
JOIN Product p
ON cl.Customer_id = p.Product_id
JOIN Orders o
ON p.Product_id = o.Product_id
WHERE ordersDate LIKE '2023-02-%' OR OrdersDate LIKE '2023-05-%'
GROUP BY Customer_name;