select count "recursif"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : select count "recursif"

Re: select count "recursif"

par gloppy » 30 mars 2011, 15:46

Effectivement ca fonctionne en fait j'avais deja essayé mais comme j'avais pas de valeur fausse ca me retournait 0 infos... :oops:

MERCI!!!

Re: select count "recursif"

par sadeq » 30 mars 2011, 15:02

Merci jevais essayer comme ca mais du coup... pas de possibilité de le faire pour tous les champs "automatiquement"?

oups c'est vrai en fait c'est pour simplifier l'explication j'ai changer les noms de table et champ. Donc Id_typvac c'est en fait Id_A
Ben, puisqu'il s'agit de id_A et que tu veux automatiser l'Update pour tous les id_A de la table A il suffit de virer le WHERE de la requête car il sert plus à rien :
UPDATE A SET
nb_crit= (SELECT count(B.*) FROM B WHERE B.Pt_A_B=A.id_A AND B.Crit= 0),
nb_Tot = (SELECT count(B.*) FROM B WHERE B.Pt_A_B=A.id_A)

Re: select count "recursif"

par gloppy » 30 mars 2011, 14:32

Merci jevais essayer comme ca mais du coup... pas de possibilité de le faire pour tous les champs "automatiquement"?

oups c'est vrai en fait c'est pour simplifier l'explication j'ai changer les noms de table et champ. Donc Id_typvac c'est en fait Id_A

Re: select count "recursif"

par sadeq » 30 mars 2011, 14:14

Bonjour,
On peut lier une sous-requête à une requête principale en utilisant les champs de la requête principale dans la sous-requête conformément à la loi de la portée des variables où les variables globale (requête principale) sont visibles dans le sous-contexte de la sous-requête. Voici comment:
update A set
nb_crit= (select count(B.*) FROM B where B.Pt_A_B=A.id_A AND B.Crit= 0),
nb_Tot = (select count(B.*) FROM B where B.Pt_A_B=A.id_A)
Where Id_TypVac="manuel"
Par contre le champ "Id_TypVac" que je ne connais pas et qui se trouve vraisemblablement dans la table A doit rester "manuel"

select count "recursif"

par gloppy » 30 mars 2011, 11:12

bonjour,

J'ai 2 table A et B.
A:
Id_A, Nom_A, Nb_tot, nb_Crit...
B:
Id_B, Nom_B, Crit, Pt_A_B ... où Pt_A_B est un lien vers la table A (Id_A)

Je voudrais mettre a jours les champs Nb_tot et Nb_crit de la table A en fontion de la table B. J'ai une requete qui fonctionne mais je dois renseigner l'ID_A et je voudrais la recursivité automatique:

ma requete actuelle qui marche par champs renseigné manuellement:

update A set
nb_crit= (select count(*) FROM B where Pt_A_B="manuel" AND crit= 0),
nb_Tot = (select count(*) FROM B where Pt_A_B="manuel")
Where Id_TypVac="manuel"

Où "manuel" correspond au champ que je doit rentré actuellement a la main autant de fois que j'ai d'enregistrements dans la table A ....

Avez vous une solution pour automatiser la requete sur l'ensemble de la table A?


Merci d'avance.

Gloppy