Bonjour Firetox
Suite de mes recherches pour récupérer le plus grand compte existant par
rapport à un compte quelconque.
J'ai cherché la méthode la plus simple.
Voici ce que je fais:
Je construit une chaine avec tous les comptes < MonCompte et j'effectue la
recherche avec la clause in, ordonné par compte descendant en récupérant
le 1er (limit 1)
lCond est une chaîne
lLong est un entier
lId est un entier
// Recherche des codes liasse
lCond = :mGet("COMPTE")
lLong = Taille(:mGet("COMPTE"))
BOUCLE
lLong--
SI lLong = 0 ALORS SORTIR
lCond += ("," + Gauche(lCond,lLong)) // me donne une chaine sous la
forme "4110005,411000,41100,4110,411,41,4"
FIN
lCond = Milieu(lCond,2) // Enleve la 1ere virgule
lCond = "select LIASSED,LIASSEC,COMPTE,IDCPTPLAN" +...
" from cptplan" +...
" where COMPTE in (" + lCond + ")" +...
" order by compte desc limit 1"
SI SQLExec(lCond,"ReqL") ALORS
SI SQLFetch("ReqL") = 0 ALORS
:mSet("LIASSED",SQLLitCol("ReqL",1))
:mSet("LIASSEC",SQLLitCol("ReqL",2))
lId = SQLLitCol("ReqL",4)
FIN
FIN
SQLFerme("ReqL")
RENVOYER lId
Est-ce la méthode la plus rapide ou il y a mieux ?
J'avoue qu'avec des jointures j'ai des difficultés pour avoir le même
résultat
Encore merci
Bonjour Firetox
Suite de mes recherches pour récupérer le plus grand compte existant par
rapport à un compte quelconque.
J'ai cherché la méthode la plus simple.
Voici ce que je fais:
Je construit une chaine avec tous les comptes < MonCompte et j'effectue la
recherche avec la clause in, ordonné par compte descendant en récupérant
le 1er (limit 1)
lCond est une chaîne
lLong est un entier
lId est un entier
// Recherche des codes liasse
lCond = :mGet("COMPTE")
lLong = Taille(:mGet("COMPTE"))
BOUCLE
lLong--
SI lLong = 0 ALORS SORTIR
lCond += ("," + Gauche(lCond,lLong)) // me donne une chaine sous la
forme "4110005,411000,41100,4110,411,41,4"
FIN
lCond = Milieu(lCond,2) // Enleve la 1ere virgule
lCond = "select LIASSED,LIASSEC,COMPTE,IDCPTPLAN" +...
" from cptplan" +...
" where COMPTE in (" + lCond + ")" +...
" order by compte desc limit 1"
SI SQLExec(lCond,"ReqL") ALORS
SI SQLFetch("ReqL") = 0 ALORS
:mSet("LIASSED",SQLLitCol("ReqL",1))
:mSet("LIASSEC",SQLLitCol("ReqL",2))
lId = SQLLitCol("ReqL",4)
FIN
FIN
SQLFerme("ReqL")
RENVOYER lId
Est-ce la méthode la plus rapide ou il y a mieux ?
J'avoue qu'avec des jointures j'ai des difficultés pour avoir le même
résultat
Encore merci
Bonjour Firetox
Suite de mes recherches pour récupérer le plus grand compte existant par
rapport à un compte quelconque.
J'ai cherché la méthode la plus simple.
Voici ce que je fais:
Je construit une chaine avec tous les comptes < MonCompte et j'effectue la
recherche avec la clause in, ordonné par compte descendant en récupérant
le 1er (limit 1)
lCond est une chaîne
lLong est un entier
lId est un entier
// Recherche des codes liasse
lCond = :mGet("COMPTE")
lLong = Taille(:mGet("COMPTE"))
BOUCLE
lLong--
SI lLong = 0 ALORS SORTIR
lCond += ("," + Gauche(lCond,lLong)) // me donne une chaine sous la
forme "4110005,411000,41100,4110,411,41,4"
FIN
lCond = Milieu(lCond,2) // Enleve la 1ere virgule
lCond = "select LIASSED,LIASSEC,COMPTE,IDCPTPLAN" +...
" from cptplan" +...
" where COMPTE in (" + lCond + ")" +...
" order by compte desc limit 1"
SI SQLExec(lCond,"ReqL") ALORS
SI SQLFetch("ReqL") = 0 ALORS
:mSet("LIASSED",SQLLitCol("ReqL",1))
:mSet("LIASSEC",SQLLitCol("ReqL",2))
lId = SQLLitCol("ReqL",4)
FIN
FIN
SQLFerme("ReqL")
RENVOYER lId
Est-ce la méthode la plus rapide ou il y a mieux ?
J'avoue qu'avec des jointures j'ai des difficultés pour avoir le même
résultat
Encore merci
Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete ?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction de
la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete principal
Bon dev
@+
Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete ?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction de
la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete principal
Bon dev
@+
Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete ?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction de
la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete principal
Bon dev
@+
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
"Firetox" a écrit dans le message de news:
48ce75b5$0$7859$Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete
?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction
de la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete
principal
Bon dev
@+
Lors d'un ajout d'un compte quelconque, je recherche les codes liasse dans
la table CPTPLAN. Il n'y a pas de jointure avec d'autres tables.
La structure de CPTPLAN est la suivante:
IDCPTPLAN int(11) // autoincrement
COMPTE varchar(11) // Index
INTITULE varchar(120)
LIASSED char(3)
LIASSEC char(3)
Par exmple, il y a dans cette table les comptes suivants:
"41" "Clients et comptes rattachés" "030" "031"
"411" "Clients" "032" "033"
Si je recherche les codes liasse pour le compte "41100000011" je dois
récupérer les codes "032" et "033".
Pour le compte "41000000001", je dois trouver "030" et "031"...
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
"Firetox" <firetox@SQLManagerX.com> a écrit dans le message de news:
48ce75b5$0$7859$426a74cc@news.free.fr...
Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete
?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction
de la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete
principal
Bon dev
@+
Lors d'un ajout d'un compte quelconque, je recherche les codes liasse dans
la table CPTPLAN. Il n'y a pas de jointure avec d'autres tables.
La structure de CPTPLAN est la suivante:
IDCPTPLAN int(11) // autoincrement
COMPTE varchar(11) // Index
INTITULE varchar(120)
LIASSED char(3)
LIASSEC char(3)
Par exmple, il y a dans cette table les comptes suivants:
"41" "Clients et comptes rattachés" "030" "031"
"411" "Clients" "032" "033"
Si je recherche les codes liasse pour le compte "41100000011" je dois
récupérer les codes "032" et "033".
Pour le compte "41000000001", je dois trouver "030" et "031"...
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
"Firetox" a écrit dans le message de news:
48ce75b5$0$7859$Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete
?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction
de la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete
principal
Bon dev
@+
Lors d'un ajout d'un compte quelconque, je recherche les codes liasse dans
la table CPTPLAN. Il n'y a pas de jointure avec d'autres tables.
La structure de CPTPLAN est la suivante:
IDCPTPLAN int(11) // autoincrement
COMPTE varchar(11) // Index
INTITULE varchar(120)
LIASSED char(3)
LIASSEC char(3)
Par exmple, il y a dans cette table les comptes suivants:
"41" "Clients et comptes rattachés" "030" "031"
"411" "Clients" "032" "033"
Si je recherche les codes liasse pour le compte "41100000011" je dois
récupérer les codes "032" et "033".
Pour le compte "41000000001", je dois trouver "030" et "031"...
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
"Firetox" a écrit dans le message de news:
48ce75b5$0$7859$Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete
?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction
de la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete
principal
Bon dev
@+
Lors d'un ajout d'un compte quelconque, je recherche les codes liasse dans
la table CPTPLAN. Il n'y a pas de jointure avec d'autres tables.
La structure de CPTPLAN est la suivante:
IDCPTPLAN int(11) // autoincrement
COMPTE varchar(11) // Index
INTITULE varchar(120)
LIASSED char(3)
LIASSEC char(3)
Par exmple, il y a dans cette table les comptes suivants:
"41" "Clients et comptes rattachés" "030" "031"
"411" "Clients" "032" "033"
Si je recherche les codes liasse pour le compte "41100000011" je dois
récupérer les codes "032" et "033".
Pour le compte "41000000001", je dois trouver "030" et "031"...
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
"Firetox" <firetox@SQLManagerX.com> a écrit dans le message de news:
48ce75b5$0$7859$426a74cc@news.free.fr...
Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete
?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction
de la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete
principal
Bon dev
@+
Lors d'un ajout d'un compte quelconque, je recherche les codes liasse dans
la table CPTPLAN. Il n'y a pas de jointure avec d'autres tables.
La structure de CPTPLAN est la suivante:
IDCPTPLAN int(11) // autoincrement
COMPTE varchar(11) // Index
INTITULE varchar(120)
LIASSED char(3)
LIASSEC char(3)
Par exmple, il y a dans cette table les comptes suivants:
"41" "Clients et comptes rattachés" "030" "031"
"411" "Clients" "032" "033"
Si je recherche les codes liasse pour le compte "41100000011" je dois
récupérer les codes "032" et "033".
Pour le compte "41000000001", je dois trouver "030" et "031"...
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.
"Firetox" a écrit dans le message de news:
48ce75b5$0$7859$Bonjour,
c'est une solution mais a mon sens ce n'est pas la meilleure
quelle la requete de base : celle qui remonte les infos tu dois avoir je
pense une table memoire que se rempli avec la requete ou un etat.
le code que tu viens de mettre est fait a chque lecture de cette requete
?
tu part de la table cptPlan qu'il faut lier a la table liasse ?
si c'est la cas je peux te montrer comment faire la requete en fonction
de la longueur du compte
en fait il te faudra X jointure X etant la longueur de la colonne compte
ensuite avec un if un peu muscle je te l'accorde tu auras le compte le
plus adequate sur 1 seul ligne celle qui remonte avec ta requete
principal
Bon dev
@+
Lors d'un ajout d'un compte quelconque, je recherche les codes liasse dans
la table CPTPLAN. Il n'y a pas de jointure avec d'autres tables.
La structure de CPTPLAN est la suivante:
IDCPTPLAN int(11) // autoincrement
COMPTE varchar(11) // Index
INTITULE varchar(120)
LIASSED char(3)
LIASSEC char(3)
Par exmple, il y a dans cette table les comptes suivants:
"41" "Clients et comptes rattachés" "030" "031"
"411" "Clients" "032" "033"
Si je recherche les codes liasse pour le compte "41100000011" je dois
récupérer les codes "032" et "033".
Pour le compte "41000000001", je dois trouver "030" et "031"...
Effectivement, je cherche la requete la plus optimale, car je pourrais
éventuellement l'utiliser à chaque lecture dans un état par exemple.