REQUETE SQL AVEC DELPHI ET ADO division d'une somme d'un count

Signaler
Messages postés
23
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
29 septembre 2014
-
Messages postés
1
Date d'inscription
dimanche 22 février 2009
Statut
Membre
Dernière intervention
25 mars 2012
-
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.

11 réponses

Messages postés
4718
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
14 janvier 2021
14
Bonjour,

Quel est l'origine de 258151 ?


cantador
Messages postés
23
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
29 septembre 2014

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.
Messages postés
23
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
29 septembre 2014

Messages postés
4
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
1 juin 2011

 Salut !javascript:void(0);javascript:void(0);javascript:void(0)javascript:void(0);;
Messages postés
4
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
1 juin 2011

 Salut !
Messages postés
23
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
29 septembre 2014

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Messages postés
23
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
29 septembre 2014

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
Messages postés
4718
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
14 janvier 2021
14
ça va pas ton truc..
tu crées une boucle avec un paramètre N
que l'on ne retrouve dans le contenu de celle-ci..

Je commencerai par décomposer la requête en deux morceaux et faire en sorte que ça marche.

ensuite, je fusionnerai si possible les deux.

cantador
Messages postés
4718
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
14 janvier 2021
14
n'oublie pas aussi qu'à tout moment tu peux obtenir le nombre des éléments d'une table par :

MaTable.RecordCount
ou
MonQuery.RecordCount

cantador
Messages postés
23
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
29 septembre 2014

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
Messages postés
1
Date d'inscription
dimanche 22 février 2009
Statut
Membre
Dernière intervention
25 mars 2012

Bonjour

je veux savoir comment faire une recherche d'un string dans une dbgrid, et afficher que cette ligne(s). j'utilise ado.
merci pour votre aide.