REQUETE SQL AVEC DELPHI ET ADO division d'une somme d'un count
sarita1987
Messages postés23Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention29 septembre 2014
-
30 mai 2011 à 13:13
bsoussema
Messages postés1Date d'inscriptiondimanche 22 février 2009StatutMembreDernière intervention25 mars 2012
-
25 mars 2012 à 21:48
Bonjour à tous,
j'espère trouver de l'aide ici parce-que je traine sur ce probéleme depuis presque une semaine.ma requete fait une somme d'un count et dévise cette somme la sur un nombre entier la voilà
.
.
.
begin
with ADOQuery1 do begin
Active := False;
SQL.clear;
SQL.Add('SELECT SUM ((NB1)/258151) as som'
+ ' FROM (Select count (champ1) as NB1'
+ ' From BNTrain where champ1 between 0 and 10000 )BNtrain');
ExecSQL;
Active:=true;
end;
voila j'ai essayé avec cast et convert aussi ça na pas marché
NB:(ma BDD est sur sql server)
Cordialement.
sarita1987
Messages postés23Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention29 septembre 2014 30 mai 2011 à 15:11
re bonjour,
merci d'avoir répondu
j'ai oublié de mentionner que le résultat s'affiche en nombre entier alors qu'il est sensé être en réel ou en Float.
c'est le total d'un count sur le champ1 je l'ai eu avec cette requête
sql.add('SELECT Count (champ1) as total From BNTrain' );
en fait j'ai importé la même bdd sous acces (hélas je peux pas travailler avec)
et j'ai mis la même requête ça ma retourné le bon résultat.
sarita1987
Messages postés23Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention29 septembre 2014 4 juin 2011 à 21:41
DE retour ici aprés de longues recherche
Cantador je c pas si vous allez encore revenir sur ce sujet mais j’espère que ça sera la cas en fait j'ai changé de requete de façon quelle me calcule le résultat de tout mes champs avec en utilisant cette requete
!
!
!
begin
for i:=1 to N do
Begin
with ADOQuery1 do begin
ACTIVE:=False;
SQL.Clear;
SQL.ADD('SELECT DISTINCT (champ'+inttostr(i)+'),(cast(COUNT (champ'+inttostr(i)+') as REAL)/(SELECT COUNT (Champ'+inttostr(i)+')From BNTrain))AS Calcul'
+' FROM BNTrain Group by (champ'+inttostr(i)+')'
+' ORDER by (champ'+inttostr(i)+') ASC');
ExecSQL;
Active :=TRUE;
end;
!
!
!
!
et la je veux récupéré les résultats sous un tableau qui contient deux champ (un pour le champs lui même et l'autre pour le count) et cela pr chaque champ (ça va me donner en tout 42 tableau)
si vous avez une idée je suis prenante
sarita1987
Messages postés23Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention29 septembre 2014 8 juin 2011 à 00:57
c'est réglé merci bcp en fait pour le N il est a égal 42 chez moi j'ai écrit N juste pour la boucle que j'ai mis ici c'est tout
mais l’exécution est trop lente vu la densité de la BDD
je vous remercie encore pour votre modestie cantador