Excusez-moi, je crois qu'il faut placer un autre distinct qqpart mais je ne sais absolument pas où !!
En fait, je remets au-dessous un echo de ma requete.
Elle fonctionne correctement.
Sauf quand je navigue de page en page.
Je veux dire que là par exemple j'ai 27 lignes en retour de ma requete
et comme c'est une pagination avec un affichage 25 lignes
ma premiere page s'affiche correctement : je liste bien les 25 premiers résultats, mais quand je clique pour aller sur la page 2
(où je devrais voir les résultats 26 et 27)
j'ai 5 réponses (23 à 27)
je sens bien que c'est parce que dans la 1ere requete (celle qui commence par top 0, il me manque un distinct, mais j'ai fait plusieurs essais et ca plante tjrs).
Le code quand il fonctionne bien (mais pas bon sur la page 2) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT top 25 * FROM ( select distinct id_four, code_four, nom_four, npay_four, ntva_four, nsir_four, nnic_four, hcee_four, cp_four, vill_four, date_fhis, stat_four, libe_stat, comm_four from fournisseurs left join statuts on id_stat=stat_four left join fournisseurs_histo on (four_fhis=id_four and type_fhis='1') left join fournisseurs_envir on four_fenv=id_four where ( id_four) NOT IN ( select top 0 id_four from fournisseurs left join statuts on id_stat=stat_four left join fournisseurs_histo on (four_fhis=id_four and type_fhis='1') left join fournisseurs_envir on four_fenv=id_four where desa_four='N' and ( envi_fenv='CA' or envi_fenv='DE' ) order by code_four ) and desa_four='N' and ( envi_fenv='CA' or envi_fenv='DE' ) ) T_RESULTAT order by code_four
Ce que j'ai essayé mais qui plante :
avec cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT top 25 * FROM ( select distinct id_four, code_four, nom_four, npay_four, ntva_four, nsir_four, nnic_four, hcee_four, cp_four, vill_four, date_fhis, stat_four, libe_stat, comm_four from fournisseurs left join statuts on id_stat=stat_four left join fournisseurs_histo on (four_fhis=id_four and type_fhis='1') left join fournisseurs_envir on four_fenv=id_four where ( id_four) NOT IN ( select top 0 [b]distinct(id_four)[/b] from fournisseurs left join statuts on id_stat=stat_four left join fournisseurs_histo on (four_fhis=id_four and type_fhis='1') left join fournisseurs_envir on four_fenv=id_four where desa_four='N' and ( envi_fenv='CA' or envi_fenv='DE' ) order by code_four ) and desa_four='N' and ( envi_fenv='CA' or envi_fenv='DE' ) ) T_RESULTAT order by code_four
Code : Sélectionner tout - Visualiser dans une fenêtre à part Warning: MS SQL message: Syntaxe incorrecte vers le mot clé 'distinct'. (severity 15) in d:\www\baccara\fournisseurs\fournisseurs_rech.php on line 458
Je sens bien que je suis un peu lourdingue
mais j'arrive du monde MySQL où tout est tellement simple (lol)
Partager