Maison > Questions et réponses > le corps du texte
J'ai trois tables en SQL
order_table (order_id, product_id, amount)
products_table (product_id, name, price_usd),
all_orders (order_id, customer_id, order_date, total_amount),
Je souhaite générer une requête SQL qui génère le revenu total de chaque produit par mois au cours des 12 derniers mois.
J'ai besoin d'une manière ou d'une autre de séparer les différents produits mais je ne sais pas comment structurer une telle requête.
Tous les conseils seraient formidables
P粉0434322102023-09-10 12:54:46
La
réponse donnée par est d'utiliser WITH....
, ce qui n'est pas nécessaire :
select DATE_FORMAT(all_orders.order_date, '%Y-%m') as order_date, name as product_name, sum(total_amount) as total_quantity, sum(price_usd * total_amount) as total_revenue from all_orders LEFT JOIN order_table USING (order_id) LEFT JOIN products_table USING (product_id) where all_orders.order_date >= date_sub(current_date(), interval 12 month) group by 1,2 ;
Devrait faire la même chose (non testé)