Je voudrais editer les stocks non mouvementes pour une période donnée, cad
les lignes stock pour lesquelle je ne trouve pas de mouvement.
J'ai deux tables:
DOCUMLG qui contient les lignes stock
MOUVEMENT qui contient les mouvements, avec l'origine, la destination et la
date.
Le principe de la requete est de rechercher les lignes de stock qui n'ont
aucune entrée ni sortie (donc l'identifiant IDDOCUMLG n'est pas trouvé ni en
orgiine ni en destination dans la table mouvement)
J'execute cette requete qui fonctionne sur mon poste de dév. mais PAS chez
mon client.
La seule différence est la version de MySQL qui est 4.1.9 chez le client et
4.1.22 sur mon poste.
Voici la requete:
select
IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX
from
DOCUMLG
where IDDOCUM in (3) // Identifiant du stock
and QTEREST <> 0 // uniquement les stocks non vides
and IDDOCUMLG not in (select DESTINATION from MOUVEMENT where DATEMVT
between '20060501' AND '20090227')
and IDDOCUMLG not in (select ORIGINE from MOUVEMENT where DATEMVT between
'20060501' AND '20090227')
order by REFCONST,ETAT
Par ailleurs, connaissez vous une syntaxe qui permettrait de faire un seul
NOT IN, du genre :
...
and IDDOCUMLG not in (select ORIGINE,DESTINATION from ...)
...
Nota: j'ai essayé cette syntaxe, elle génère une erreur
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Firetox
Bonjour,
sur votre requete il n'y a pas d'ordre SQL qui ferait que la version puisse faire cela mais disons que chez votre client il y a plus de mouvement et la requete rame
il y a plusieurs possibilite pour faire cette requete sans les select imbriqués qui prennent du temps // ---------------------------------------------------------------------------------------------- // solution 1 SELECT DOCUMLG.IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX FROM DOCUMLG LEFT JOIN MOUVEMENT MvOri ON MvOri.DESTINATION = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' LEFT JOIN MOUVEMENT MvDes ON MvDes.ORIGINE = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and MvOri.DESTINATION is null and MvDes.ORIGINE is null order by REFCONST,ETAT
// ---------------------------------------------------------------------------------------------- // solution 2 : je pense plus lente select IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX from DOCUMLG where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and IDDOCUMLG not in ( select DESTINATION from MOUVEMENT where DATEMVT between '20060501' AND '20090227' UNION select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND '20090227' ) order by REFCONST,ETAT
a tester
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 49a7f2ae$0$2760$
Bonjour,
Je voudrais editer les stocks non mouvementes pour une période donnée, cad les lignes stock pour lesquelle je ne trouve pas de mouvement. J'ai deux tables: DOCUMLG qui contient les lignes stock MOUVEMENT qui contient les mouvements, avec l'origine, la destination et la date.
Le principe de la requete est de rechercher les lignes de stock qui n'ont aucune entrée ni sortie (donc l'identifiant IDDOCUMLG n'est pas trouvé ni en orgiine ni en destination dans la table mouvement) J'execute cette requete qui fonctionne sur mon poste de dév. mais PAS chez mon client. La seule différence est la version de MySQL qui est 4.1.9 chez le client et 4.1.22 sur mon poste.
Voici la requete:
select IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX from DOCUMLG where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and IDDOCUMLG not in (select DESTINATION from MOUVEMENT where DATEMVT between '20060501' AND '20090227') and IDDOCUMLG not in (select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND '20090227') order by REFCONST,ETAT
Par ailleurs, connaissez vous une syntaxe qui permettrait de faire un seul NOT IN, du genre :
... and IDDOCUMLG not in (select ORIGINE,DESTINATION from ...) ...
Nota: j'ai essayé cette syntaxe, elle génère une erreur
Merci à tous
Bonjour,
sur votre requete il n'y a pas d'ordre SQL qui ferait que la version puisse
faire cela
mais disons que chez votre client il y a plus de mouvement et la requete
rame
il y a plusieurs possibilite pour faire cette requete sans les select
imbriqués qui prennent du temps
// ----------------------------------------------------------------------------------------------
// solution 1
SELECT
DOCUMLG.IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX
FROM
DOCUMLG
LEFT JOIN MOUVEMENT MvOri ON MvOri.DESTINATION = DOCUMLG.IDDOCUMLG
AND DATEMVT
between '20060501' AND '20090227'
LEFT JOIN MOUVEMENT MvDes ON MvDes.ORIGINE = DOCUMLG.IDDOCUMLG
AND DATEMVT
between '20060501' AND '20090227'
where IDDOCUM in (3) // Identifiant du stock
and QTEREST <> 0 // uniquement les stocks non vides
and MvOri.DESTINATION is null
and MvDes.ORIGINE is null
order by REFCONST,ETAT
// ----------------------------------------------------------------------------------------------
// solution 2 : je pense plus lente
select
IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX
from
DOCUMLG
where IDDOCUM in (3) // Identifiant du stock
and QTEREST <> 0 // uniquement les stocks non vides
and IDDOCUMLG not in (
select DESTINATION from MOUVEMENT where DATEMVT between '20060501'
AND '20090227'
UNION
select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND
'20090227'
)
order by REFCONST,ETAT
a tester
Bon dev
@+
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
49a7f2ae$0$2760$ba4acef3@news.orange.fr...
Bonjour,
Je voudrais editer les stocks non mouvementes pour une période donnée, cad
les lignes stock pour lesquelle je ne trouve pas de mouvement.
J'ai deux tables:
DOCUMLG qui contient les lignes stock
MOUVEMENT qui contient les mouvements, avec l'origine, la destination et
la date.
Le principe de la requete est de rechercher les lignes de stock qui n'ont
aucune entrée ni sortie (donc l'identifiant IDDOCUMLG n'est pas trouvé ni
en orgiine ni en destination dans la table mouvement)
J'execute cette requete qui fonctionne sur mon poste de dév. mais PAS chez
mon client.
La seule différence est la version de MySQL qui est 4.1.9 chez le client
et 4.1.22 sur mon poste.
Voici la requete:
select
IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX
from
DOCUMLG
where IDDOCUM in (3) // Identifiant du stock
and QTEREST <> 0 // uniquement les stocks non vides
and IDDOCUMLG not in (select DESTINATION from MOUVEMENT where DATEMVT
between '20060501' AND '20090227')
and IDDOCUMLG not in (select ORIGINE from MOUVEMENT where DATEMVT between
'20060501' AND '20090227')
order by REFCONST,ETAT
Par ailleurs, connaissez vous une syntaxe qui permettrait de faire un seul
NOT IN, du genre :
...
and IDDOCUMLG not in (select ORIGINE,DESTINATION from ...)
...
Nota: j'ai essayé cette syntaxe, elle génère une erreur
sur votre requete il n'y a pas d'ordre SQL qui ferait que la version puisse faire cela mais disons que chez votre client il y a plus de mouvement et la requete rame
il y a plusieurs possibilite pour faire cette requete sans les select imbriqués qui prennent du temps // ---------------------------------------------------------------------------------------------- // solution 1 SELECT DOCUMLG.IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX FROM DOCUMLG LEFT JOIN MOUVEMENT MvOri ON MvOri.DESTINATION = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' LEFT JOIN MOUVEMENT MvDes ON MvDes.ORIGINE = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and MvOri.DESTINATION is null and MvDes.ORIGINE is null order by REFCONST,ETAT
// ---------------------------------------------------------------------------------------------- // solution 2 : je pense plus lente select IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX from DOCUMLG where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and IDDOCUMLG not in ( select DESTINATION from MOUVEMENT where DATEMVT between '20060501' AND '20090227' UNION select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND '20090227' ) order by REFCONST,ETAT
a tester
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 49a7f2ae$0$2760$
Bonjour,
Je voudrais editer les stocks non mouvementes pour une période donnée, cad les lignes stock pour lesquelle je ne trouve pas de mouvement. J'ai deux tables: DOCUMLG qui contient les lignes stock MOUVEMENT qui contient les mouvements, avec l'origine, la destination et la date.
Le principe de la requete est de rechercher les lignes de stock qui n'ont aucune entrée ni sortie (donc l'identifiant IDDOCUMLG n'est pas trouvé ni en orgiine ni en destination dans la table mouvement) J'execute cette requete qui fonctionne sur mon poste de dév. mais PAS chez mon client. La seule différence est la version de MySQL qui est 4.1.9 chez le client et 4.1.22 sur mon poste.
Voici la requete:
select IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX from DOCUMLG where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and IDDOCUMLG not in (select DESTINATION from MOUVEMENT where DATEMVT between '20060501' AND '20090227') and IDDOCUMLG not in (select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND '20090227') order by REFCONST,ETAT
Par ailleurs, connaissez vous une syntaxe qui permettrait de faire un seul NOT IN, du genre :
... and IDDOCUMLG not in (select ORIGINE,DESTINATION from ...) ...
Nota: j'ai essayé cette syntaxe, elle génère une erreur
Merci à tous
I.G.LOG
"Firetox" a écrit dans le message de news: 49a8130e$0$3555$
Bonjour,
sur votre requete il n'y a pas d'ordre SQL qui ferait que la version puisse faire cela mais disons que chez votre client il y a plus de mouvement et la requete rame
Bonjour J'ai a peu près la même base chez le client que sur mon poste de dév. C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous l'avons vu ensemble sur un pb précédent, peut donner des résultats disons "aléatoires") Et chez moi la requete retourne les résultats en moins d'une seconde (222029 tuples dans 'mouvement', 663445 dans 'documlg')
il y a plusieurs possibilite pour faire cette requete sans les select imbriqués qui prennent du temps // ---------------------------------------------------------------------------------------------- // solution 1 SELECT DOCUMLG.IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX FROM DOCUMLG LEFT JOIN MOUVEMENT MvOri ON MvOri.DESTINATION = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' LEFT JOIN MOUVEMENT MvDes ON MvDes.ORIGINE = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and MvOri.DESTINATION is null and MvDes.ORIGINE is null order by REFCONST,ETAT
Test sur ma base locale: 0,31 sec.
// ---------------------------------------------------------------------------------------------- // solution 2 : je pense plus lente select IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX from DOCUMLG where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and IDDOCUMLG not in ( select DESTINATION from MOUVEMENT where DATEMVT between '20060501' AND '20090227' UNION select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND '20090227' ) order by REFCONST,ETAT
a tester
Test sur ma base locale: 0,36 sec. Je testerais tout ça chez mon client
Par ailleurs, connaissez vous une syntaxe qui permettrait de faire un seul NOT IN, du genre :
... and IDDOCUMLG not in (select ORIGINE,DESTINATION from ...) ...
Nota: j'ai essayé cette syntaxe, elle génère une erreur
J'ai essayé avec ... AND FIND_IN_SET(CAST(IDDOCUMLG as CHAR),(SELECT CONCAT_WS(","ORIGINE,DESTINATION) from mouvement WHERE DATEMVT between '20060501' AND '20090227')) = 0 ...
mais j'ai un erreur 1424 (plus d'une colonne) que je ne comprends pas (quand je le lance (select concat_ws(...) ca me retourne bien une seule colonne !!)
Encore un grand merci à toi pour tes conseils éclairés !!!
"Firetox" <firetox@SQLManagerX.com> a écrit dans le message de news:
49a8130e$0$3555$426a34cc@news.free.fr...
Bonjour,
sur votre requete il n'y a pas d'ordre SQL qui ferait que la version
puisse faire cela
mais disons que chez votre client il y a plus de mouvement et la requete
rame
Bonjour
J'ai a peu près la même base chez le client que sur mon poste de dév. C'est
pour ça que je ne comprends pas que ca fonctionne chez moi et pas chez lui
(j'avais donc pensé à la diff. de version MySQL qui, nous l'avons vu
ensemble sur un pb précédent, peut donner des résultats disons "aléatoires")
Et chez moi la requete retourne les résultats en moins d'une seconde
(222029 tuples dans 'mouvement', 663445 dans 'documlg')
il y a plusieurs possibilite pour faire cette requete sans les select
imbriqués qui prennent du temps
// ----------------------------------------------------------------------------------------------
// solution 1
SELECT
DOCUMLG.IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX
FROM
DOCUMLG
LEFT JOIN MOUVEMENT MvOri ON MvOri.DESTINATION = DOCUMLG.IDDOCUMLG
AND
DATEMVT between '20060501' AND '20090227'
LEFT JOIN MOUVEMENT MvDes ON MvDes.ORIGINE = DOCUMLG.IDDOCUMLG
AND
DATEMVT between '20060501' AND '20090227'
where IDDOCUM in (3) // Identifiant du stock
and QTEREST <> 0 // uniquement les stocks non vides
and MvOri.DESTINATION is null
and MvDes.ORIGINE is null
order by REFCONST,ETAT
Test sur ma base locale: 0,31 sec.
// ----------------------------------------------------------------------------------------------
// solution 2 : je pense plus lente
select
IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX
from
DOCUMLG
where IDDOCUM in (3) // Identifiant du stock
and QTEREST <> 0 // uniquement les stocks non vides
and IDDOCUMLG not in (
select DESTINATION from MOUVEMENT where DATEMVT between '20060501'
AND '20090227'
UNION
select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND
'20090227'
)
order by REFCONST,ETAT
a tester
Test sur ma base locale: 0,36 sec.
Je testerais tout ça chez mon client
Par ailleurs, connaissez vous une syntaxe qui permettrait de faire un
seul NOT IN, du genre :
...
and IDDOCUMLG not in (select ORIGINE,DESTINATION from ...)
...
Nota: j'ai essayé cette syntaxe, elle génère une erreur
J'ai essayé avec
...
AND FIND_IN_SET(CAST(IDDOCUMLG as CHAR),(SELECT
CONCAT_WS(","ORIGINE,DESTINATION) from mouvement WHERE DATEMVT between
'20060501' AND '20090227')) = 0
...
mais j'ai un erreur 1424 (plus d'une colonne) que je ne comprends pas (quand
je le lance (select concat_ws(...) ca me retourne bien une seule colonne !!)
Encore un grand merci à toi pour tes conseils éclairés !!!
"Firetox" a écrit dans le message de news: 49a8130e$0$3555$
Bonjour,
sur votre requete il n'y a pas d'ordre SQL qui ferait que la version puisse faire cela mais disons que chez votre client il y a plus de mouvement et la requete rame
Bonjour J'ai a peu près la même base chez le client que sur mon poste de dév. C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous l'avons vu ensemble sur un pb précédent, peut donner des résultats disons "aléatoires") Et chez moi la requete retourne les résultats en moins d'une seconde (222029 tuples dans 'mouvement', 663445 dans 'documlg')
il y a plusieurs possibilite pour faire cette requete sans les select imbriqués qui prennent du temps // ---------------------------------------------------------------------------------------------- // solution 1 SELECT DOCUMLG.IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX FROM DOCUMLG LEFT JOIN MOUVEMENT MvOri ON MvOri.DESTINATION = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' LEFT JOIN MOUVEMENT MvDes ON MvDes.ORIGINE = DOCUMLG.IDDOCUMLG AND DATEMVT between '20060501' AND '20090227' where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and MvOri.DESTINATION is null and MvDes.ORIGINE is null order by REFCONST,ETAT
Test sur ma base locale: 0,31 sec.
// ---------------------------------------------------------------------------------------------- // solution 2 : je pense plus lente select IDDOCUM,IDARTICLE,DESIGNATION,REFCONST,ETAT,QTEREST,PRIX from DOCUMLG where IDDOCUM in (3) // Identifiant du stock and QTEREST <> 0 // uniquement les stocks non vides and IDDOCUMLG not in ( select DESTINATION from MOUVEMENT where DATEMVT between '20060501' AND '20090227' UNION select ORIGINE from MOUVEMENT where DATEMVT between '20060501' AND '20090227' ) order by REFCONST,ETAT
a tester
Test sur ma base locale: 0,36 sec. Je testerais tout ça chez mon client
Par ailleurs, connaissez vous une syntaxe qui permettrait de faire un seul NOT IN, du genre :
... and IDDOCUMLG not in (select ORIGINE,DESTINATION from ...) ...
Nota: j'ai essayé cette syntaxe, elle génère une erreur
J'ai essayé avec ... AND FIND_IN_SET(CAST(IDDOCUMLG as CHAR),(SELECT CONCAT_WS(","ORIGINE,DESTINATION) from mouvement WHERE DATEMVT between '20060501' AND '20090227')) = 0 ...
mais j'ai un erreur 1424 (plus d'une colonne) que je ne comprends pas (quand je le lance (select concat_ws(...) ca me retourne bien une seule colonne !!)
Encore un grand merci à toi pour tes conseils éclairés !!!
Firetox
> J'ai a peu près la même base chez le client que sur mon poste de dév. C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous l'avons vu ensemble sur un pb précédent, peut donner des résultats disons "aléatoires") Et chez moi la requete retourne les résultats en moins d'une seconde (222029 tuples dans 'mouvement', 663445 dans 'documlg')
verifie quand meme les libmySQL.dll quis ont sur les postes elle est installé ou ? (dans le rep de l'appli ou windows ?)
peut etre a cause du sous select la requete 1 devrait te montrer ci cela vient de la puisqu"elle n'a pas de sous select
> J'ai a peu près la même base chez le client que sur mon poste de dév.
C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas
chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous l'avons
vu ensemble sur un pb précédent, peut donner des résultats disons
"aléatoires")
Et chez moi la requete retourne les résultats en moins d'une seconde
(222029 tuples dans 'mouvement', 663445 dans 'documlg')
verifie quand meme les libmySQL.dll quis ont sur les postes
elle est installé ou ? (dans le rep de l'appli ou windows ?)
peut etre a cause du sous select
la requete 1 devrait te montrer ci cela vient de la puisqu"elle n'a pas de
sous select
> J'ai a peu près la même base chez le client que sur mon poste de dév. C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous l'avons vu ensemble sur un pb précédent, peut donner des résultats disons "aléatoires") Et chez moi la requete retourne les résultats en moins d'une seconde (222029 tuples dans 'mouvement', 663445 dans 'documlg')
verifie quand meme les libmySQL.dll quis ont sur les postes elle est installé ou ? (dans le rep de l'appli ou windows ?)
peut etre a cause du sous select la requete 1 devrait te montrer ci cela vient de la puisqu"elle n'a pas de sous select
I.G.LOG
"Firetox" a écrit dans le message de news: 49a81f38$0$18745$
J'ai a peu près la même base chez le client que sur mon poste de dév. C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous l'avons vu ensemble sur un pb précédent, peut donner des résultats disons "aléatoires") Et chez moi la requete retourne les résultats en moins d'une seconde (222029 tuples dans 'mouvement', 663445 dans 'documlg')
verifie quand meme les libmySQL.dll quis ont sur les postes elle est installé ou ? (dans le rep de l'appli ou windows ?)
les libmysql.dll sont dans le rép. de l'appli Je vais vérifier les versions de ces dll dès que je suis chez le client (mardi prochain) je te tiens au courant dès que j'ai la solution Encore merci
peut etre a cause du sous select la requete 1 devrait te montrer ci cela vient de la puisqu"elle n'a pas de sous select
oui je vais de toute façon essayer avec cette requete 1 qui semble plus performante que la mienne (qui a deux sous-select NOT IN)
"Firetox" <firetox@SQLManagerX.com> a écrit dans le message de news:
49a81f38$0$18745$426a34cc@news.free.fr...
J'ai a peu près la même base chez le client que sur mon poste de dév.
C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas
chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous
l'avons vu ensemble sur un pb précédent, peut donner des résultats disons
"aléatoires")
Et chez moi la requete retourne les résultats en moins d'une seconde
(222029 tuples dans 'mouvement', 663445 dans 'documlg')
verifie quand meme les libmySQL.dll quis ont sur les postes
elle est installé ou ? (dans le rep de l'appli ou windows ?)
les libmysql.dll sont dans le rép. de l'appli
Je vais vérifier les versions de ces dll dès que je suis chez le client
(mardi prochain)
je te tiens au courant dès que j'ai la solution
Encore merci
peut etre a cause du sous select
la requete 1 devrait te montrer ci cela vient de la puisqu"elle n'a pas de
sous select
oui je vais de toute façon essayer avec cette requete 1 qui semble plus
performante que la mienne (qui a deux sous-select NOT IN)
"Firetox" a écrit dans le message de news: 49a81f38$0$18745$
J'ai a peu près la même base chez le client que sur mon poste de dév. C'est pour ça que je ne comprends pas que ca fonctionne chez moi et pas chez lui (j'avais donc pensé à la diff. de version MySQL qui, nous l'avons vu ensemble sur un pb précédent, peut donner des résultats disons "aléatoires") Et chez moi la requete retourne les résultats en moins d'une seconde (222029 tuples dans 'mouvement', 663445 dans 'documlg')
verifie quand meme les libmySQL.dll quis ont sur les postes elle est installé ou ? (dans le rep de l'appli ou windows ?)
les libmysql.dll sont dans le rép. de l'appli Je vais vérifier les versions de ces dll dès que je suis chez le client (mardi prochain) je te tiens au courant dès que j'ai la solution Encore merci
peut etre a cause du sous select la requete 1 devrait te montrer ci cela vient de la puisqu"elle n'a pas de sous select
oui je vais de toute façon essayer avec cette requete 1 qui semble plus performante que la mienne (qui a deux sous-select NOT IN)
I.G.LOG
Bonjour, Sur mon poste de dév., en mode réel (l'appli installée sur c:program filesprog) la requete ne fonctionne pas. En mode test, ça fonctionne ?! Je viens de vérifier les libmysql.dll: la version installée sur c:MySQLMySQL Server 4.1 est bien la même que celle installée dans le rép. de l'exécutable, cad version du 6/11/2006 (1160 Ko). Je ne comprends donc pas pourquoi ca fonctionne en test et pas en réel. Je pense donc vraiment à une différence au niveau du serveur (en réel j'attaque la base sur le serveur qui est en 4.1.9 sur Linux alors qu'en test j'ai la version 4.1.22) J'ai modifié la requète comme tu me l'as indiqué (req. n° 1) et là tout fonctionne !!! Encore un grand merci à toi
Bonjour,
Sur mon poste de dév., en mode réel (l'appli installée sur c:program
filesprog) la requete ne fonctionne pas. En mode test, ça fonctionne ?!
Je viens de vérifier les libmysql.dll: la version installée sur
c:MySQLMySQL Server 4.1 est bien la même que celle installée dans le rép.
de l'exécutable, cad version du 6/11/2006 (1160 Ko). Je ne comprends donc
pas pourquoi ca fonctionne en test et pas en réel. Je pense donc vraiment à
une différence au niveau du serveur (en réel j'attaque la base sur le
serveur qui est en 4.1.9 sur Linux alors qu'en test j'ai la version 4.1.22)
J'ai modifié la requète comme tu me l'as indiqué (req. n° 1) et là tout
fonctionne !!!
Encore un grand merci à toi
Bonjour, Sur mon poste de dév., en mode réel (l'appli installée sur c:program filesprog) la requete ne fonctionne pas. En mode test, ça fonctionne ?! Je viens de vérifier les libmysql.dll: la version installée sur c:MySQLMySQL Server 4.1 est bien la même que celle installée dans le rép. de l'exécutable, cad version du 6/11/2006 (1160 Ko). Je ne comprends donc pas pourquoi ca fonctionne en test et pas en réel. Je pense donc vraiment à une différence au niveau du serveur (en réel j'attaque la base sur le serveur qui est en 4.1.9 sur Linux alors qu'en test j'ai la version 4.1.22) J'ai modifié la requète comme tu me l'as indiqué (req. n° 1) et là tout fonctionne !!! Encore un grand merci à toi
Firetox
Bonjour,
J'ai modifié la requète comme tu me l'as indiqué (req. n° 1) et là tout fonctionne !!! Encore un grand merci à toi
oui je pense qu'il y a quelque chose sur les ous requete entre les version 19 et 22 c'est pour cela que j'evite au maxi les sous requetes. sinon il faut verifier que cela fonctionne sur les differentes install
Bon dev @+
Bonjour,
J'ai modifié la requète comme tu me l'as indiqué (req. n° 1) et là tout
fonctionne !!!
Encore un grand merci à toi
oui je pense qu'il y a quelque chose sur les ous requete entre les version
19 et 22
c'est pour cela que j'evite au maxi les sous requetes. sinon il faut
verifier que cela fonctionne sur les differentes install
J'ai modifié la requète comme tu me l'as indiqué (req. n° 1) et là tout fonctionne !!! Encore un grand merci à toi
oui je pense qu'il y a quelque chose sur les ous requete entre les version 19 et 22 c'est pour cela que j'evite au maxi les sous requetes. sinon il faut verifier que cela fonctionne sur les differentes install