dolibarr-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-user] Requete SQL pour une recherche non disponible


From: Ozit
Subject: Re: [Dolibarr-user] Requete SQL pour une recherche non disponible
Date: Tue, 07 Aug 2007 10:43:44 +0200
User-agent: Thunderbird 2.0.0.5 (X11/20070719)

Merci, je garde de coté la requete
Mais en effet, ce qui m'intessait c'était le descriptif inscrit dans la table llx_facture.
Tu travailles tard !
A+

Yannick Warnier a écrit :
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


  


reply via email to

[Prev in Thread] Current Thread [Next in Thread]