Envoyé par hwijra
pour ceux qui ont la flême il y a ça dans le fichier excel (sur 4 colonnes) :
très clairville nbr_mar_prv nbr_mar_def nbr_mar_rad
Envoyé par hwijra
pour ceux qui ont la flême il y a ça dans le fichier excel (sur 4 colonnes) :
très clairville nbr_mar_prv nbr_mar_def nbr_mar_rad
autrement dit, d'après ce que j'ai compris, ça serait :
nom ville|nbr_mar_prv| nbr_mar_def |nbr_mar_rad
paris 15 65 68
ou c'est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 1ere condition (résultat en rouge) where (M.NUM_DAM=D.NUM_DAM and D.NUM_SOU_DAM=M.NUM_SOU_DAM and M.DAT_STA_DEF between '01-JAN-2006' and '31-DEC-2006' ) 2eme condition or (M1.NUM_DAM=D.NUM_DAM and D.NUM_SOU_DAM=M1.NUM_SOU_DAM and M1.DAT_STA_PRV between '01-JAN-2006' and '31-DEC-2006') 3eme condition : or (M2.NUM_DAM=D.NUM_DAM and D.NUM_SOU_DAM=M2.NUM_SOU_DAM and M2.DAT_RAD is not null)
merci pour votre aide mais finalement j crois que j'ai trouvé la solution et cela en utilisant la clause case et la requete est devenue sous la forme suivante :
select DES_DAM,
count(num1) DEF2006,
count(num2) PRV2006,
count(num3) RAD2006
from (
SELECT DES_DAM
, case when (marin.dat_sta_def between ' 01-jan-2006' and '31-dec-2006') then marin.num_ins end num1
, case when (marin.dat_sta_prv between ' 01-jan-2006' and ' 31-dec-2006') then marin.num_ins end num2
, case when (marin.dat_rad between ' 01-jan-2006' and ' 31-dec-2006') then marin.num_ins end num3
FROM marin, dam
where dam.num_dam=marin.num_dam and dam.num_sou_dam=marin.num_sou_dam )
group by DES_DAM;
rebonjour les amis en fait j voudrais vous poser une question j'ai un tableau sous la forme ci-dessous et j voudrais calculer le total mais a partir des données de ce tableau svp si quelqu'un peut m'aider dans ce sujet
Quand tu dis total, cela veut-il dire cap+chmec+spat ?
bonjour tt le monde vous avez raison c'est de ce total dont j parle merciiii
il suffit de marquer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select (cap+chmec+spat) ...
Salut,
Comme l'a dit fisto, il suffit de faire une somme des 3 champs. Il faut que cette requête soit impriquée dans un update pour mettre à jour le champ total. Essaie ce code pour voir :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 update TaTable set Total = (select T.Caporpat+T.Chmec+T.Spat from TaTable T);
en fait j'ai oublier de mentionner que les champs dont j parlais eux meme sont crées par des requetes a partir d'autre table c pourquoi j trouve cette dificulté.
Je ne vois pas trop comment cela pourrait influencer la mise à jour du champ total.Envoyé par hwijra
Chaque requête est exécutée indépendemment des autres. tu n'exécutera la requête concernant total que lorsque tu auras tous les éléments en main. Si tu pouvais donner plus d'explications ça serait mieux (je crois que j'ai loupé qqch).
vous avez parler de mise a jour de table sauf que ce tableau n'est pa une table dans la base de données c'est une requete que moi meme avait crée donc j vois pa comment j pourais faire cette mise a jour la voila la requete :
la voila
Simplement comme ca, non ? :
Et, pour info, mettre les "AS" c'est mieux, au cas où tu oublierais une virgule
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
21
22
23 select DES_DAM, count(num1) as patrons_capitaines, count(num2) as chef_mecanicien, count(num3) as second_patron, count(num4) as secon_mecanicien, count(num5) as lieutenant_pont, count(num6) as lieutenant_machine, count(num7) as matelot , count(num1) + count(num2) + count(num3) as total from ( SELECT DES_DAM , case when fonction.des_fon in ('PATRON','CAPITAINE') then marin.num_ins end num1 , case when fonction.des_fon= 'CHEF MECANICIEN' then marin.num_ins end num2 , case when fonction.des_fon= 'SECOND PATRON' then marin.num_ins end num3 , case when fonction.des_fon= 'SECOND MECANICIEN' then marin.num_ins end num4 , case when fonction.des_fon= 'LIEUTENANT PONT' then marin.num_ins end num5 , case when fonction.des_fon= 'LIEUTENANT MACHINE' then marin.num_ins end num6 , case when fonction.des_fon= 'MATELOT' then marin.num_ins end num7 FROM fonction, marin, qua_marin, qualification,fon_qualification,dam where qua_marin.num_ins=marin.num_ins and qua_marin.cod_qua=qualification.cod_qua and qualification.cod_qua=fon_qualification.cod_qua and fon_qualification.cod_fon=fonction.cod_fon and dam.num_dam=marin.num_dam and dam.num_sou_dam=marin.num_sou_dam ) group by DES_DAM;
merci pour ton aide mais meme sans le as ca marche .en tt cas moi j'ai jamais
utiliser le as dans mes requetes.
Oui c'est normal que ça marche sans le asEnvoyé par hwijra
Le as permet au pgm de ne pas planter si tu oublies une virgule. C'est tout. Le mettre n'est pas nécessaire, c'est plus une précaution.Envoyé par mindiell
oui j vois merci
Si tous tes tracas ont disparus, un serait le bienvenu.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager