Bonjour,
j'ai un pb avec une requête dans un script dont je dois saisir les paramètres:
-> mes tables:
customer(customer_id,name)
sales_order(order_id,customer_id,order_date)
A partir d'un script, je saisi les paramètres "nom client" au prompt ainsi qu'un interval de date pour lequel j'affiche les commandes (date min, date max)
cette requête fonctionne bien :
je dois modifier cette requête afin que, si l'utilisateur ne saisi pas les paramètres lorsque le prompt lui demande, j'affiche la liste de tous les clients et sur la plage de dates comprise entre la plus petites et la plus grande date existant dans la table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 --with all parameters select c.name as "NAME",s.order_date,s.total FROM sales_order s,customer c WHERE s.customer_id=c.customer_id and c.name='&NAME' and s.order_date between '&DATE_MIN' and '&DATE_MAX';
Voici ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 SELECT c.name as "NAME", s.order_date, s.total FROM sales_order s,customer c WHERE s.customer_id=c.customer_id --with c.name parameter is null or not null and c.name=(select CASE WHEN '&NAME'='' THEN (select c.name as "NAME") WHEN '&NAME' IS NOT NULL THEN (select '&NAME' as "NAME")) and s.order_date --with &DATE_MIN and &DAT_MAX are null or not null between (select case WHEN '&DATE_MIN'='' THEN (select min(s.order_date)) WHEN '&DATE_MIN' IS NOT NULL THEN '&DATE_MIN') and (select case WHEN '&DATE_MAX'='' THEN (select max(s.order_date)) WHEN '&DATE_MAX'IS NOT NULL THEN '&DATE_MAX');
Partager