Le mardi 07 août 2007 à 01:51 +0200, Ozit a écrit :
Bonsoir,
Actuellement, il ne nous est pas possible (toute les versions
confondues) de faire une recherche un peu poussée du type :
-savoir si on a facturé (ou proposé) à un client spécifique un produit
contenant le mot "pack" (par exemple) dans son intitulé.
Il est possible en effect de faire une recherche du mot "pack" dans
les produit, puis ensuite de regarder les "Référents", mais quand on a
un resultat de 50 produits, cela prend du temps.
J'ai donc essayé de ressortir de mes cartons mes cours de SQL, car je
savais qu'il y aurait des jonctions à réaliser (en effet, dans mon
cas, mon exemple, le numéro de facture (table llx_facture) n'est pas
dans la meme table que la description du produit facturé
(llx_facturedet).
Je souhaitais faire apparaitre les numéros de factures ayant des
produits facturés dont le descriptif contenait le mot pack.
J'ai essayé plein de chose, puis en écrivant ce mail, j'ai trouvé :
select f.facnumber
from llx_facture f inner join llx_facturedet d
on d.fk_facture = f.rowid
where d.description like "%pack%"
and f.fk_soc = 4 ;
Donc pour ceux queca pourrait interessé.
Salut,
Pour avoir les noms des produits de façon sûre, il faudrait aussi lier
le fk_product (trouvé dans llx_facturedet) dans la table llx_product.
Cela dit ça dépend ce que veut dire pour toi "descriptif" (est-ce le nom
de la ligne de facture, le nom du produit, ou la description du
produit?)
Je ne pense pas que les guillemets soient autorisés pour donner la
chaîne de recherche d'un 'like' (mais j'imagine que si c'était une
erreur de syntaxe le système de base de données te l'aurait signalé).
Ceci devrait fonctionner dans tous les cas (désolé j'aime pas utiliser
les JOIN parce que ça varie encore pas mal d'un système à l'autre):
SELECT f.facnumber
FROM llx_facture f, llx_facturedet d, llx_produit p
WHERE d.fk_facture = f.rowid
AND d.fk_product = p.rowid
AND (d.description like '%pack%'
OR p.label like '%pack%'
OR p.ref like '%pack')
AND f.fk_soc = 4 ;
Sinon ta syntaxe avait l'air bien, si tu cherches uniquement dans les
descriptifs des lignes.
Yannick
_______________________________________________
Dolibarr-user mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/dolibarr-user