Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
J'ai une petite question j'ai une liste des documents triés par ordre.
Document :
doc A 1999
doc B 2000
doc C 2001
doc D 2002
etc..
Pour réduire le temps de calcul (fichier d'un milion de lignes) je veux faire une recherche de champs entre la valeur min et la valeur max.
J'ai ccreer deux tables
Table 1 : ou j'ai fait un order by... top 1 , j'ai bien le minimum
Table 2 : avec top 1 order by .. desc j'ai le maximum.
Je veux qu'il balaye tout les documents .
sql select *
from ma table where Document in $("table1.min","table2.max");
ça fonctionne pas.. normal? merci
Bonjour,
En sql, l'instruction IN fait référence à une liste de valeur si bien que SELECT * FROM TABLE WHERE Document in (table1.min,table2.max) revient à vouloir prendre les documents min et max.
Il faut faire une séléction à travers la clause where : Where Document > Table1.min and Document < Table2.max.
Ceci étant, selon ton SGBD tu pourras utiliser la clase BETWEEN : Where Document Between Table1.min and Table2.max
De plus, si ton document est déjà trié un Peek(0) et Peek(-1) te rameneront la valeur Min et Max sans passer par des tables.
Cdt,
Benjamin Drouin
Consultant BI
je ne sais pas quelle base tu utilises, si tu fais un "in (XXX, YYY)" tu ne récupereras que les documents XXX et YYY
tu peux en revanche tenter un between XXX and YYY
Bon tests