PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Requete SQL et jointure.
Requete SQL et jointure.
Débuté par Pirson Julian, 16 nov. 2006 18:18 - 10 réponses
Posté le 16 novembre 2006 - 18:18
Bonsoir a tous...

J'ai un petit probleme a vous soumetre.
J'utilise dans mon application Windev10 des requetes via le hexecuterequetesql()

Tout allait bien jusqu'a ce midi.
Voici le code, simplifié, de la requete que je voudrais utiliser:

SELECT Stock.Unite, Produit.Libelle, SR1.qttVente, SR2.qqtFac
FROM Produit, Stock LEFT OUTER JOIN (SELECT...) AS SR1 LEFT OUTER JOIN (SELECT...) AS SR2.

Windev me dit "Mot LEFT inatendu"... Il s'agit du second LEFT !

Je suis perdu, j'ai consulté plusieurs site sur le langage SQL et je n'ai pas trouvé de solutions.

Merci de votre aide.


Ju Pirson
SONAJEF sprl
Posté le 17 novembre 2006 - 07:36
Bonjour.
Que contien le secont Select entre parenthèses?
MIchel, montréal
Posté le 17 novembre 2006 - 10:05
le second SELECT contient :

(SELECT LigneFac.Reference, LigneFac.Unite, SUM(Quantite) AS qttFac FROM LigneFac WHERE DateFacture BETWEEN date1 AND date2 GROUP BY Reference, Unite) AS SR2
Posté le 17 novembre 2006 - 10:47
Question bête : quelle base utilises-tu ? Il me semble que HF ne supporte pas les sous-requêtes dans la clause from. Si ce n'est pas HF, tu peux utiliser le paramètre hsanscorrection pour qu'il n'essaie pas d'interpréter la requête.

Frédéric.
Posté le 17 novembre 2006 - 11:12
Oui c'est bien HF que j'utilise.

Le plus étrange c'est que la premiere sous requete fonctionne bien.
C'est quand je veux en ajouter une seconde que ca coince !!!


Merci de votre aide.
Posté le 17 novembre 2006 - 11:13
Pirson Ju avait écrit le 16/11/2006 :

Bonsoir a tous...

J'ai un petit probleme a vous soumetre.
J'utilise dans mon application Windev10 des requetes via le
hexecuterequetesql()

Tout allait bien jusqu'a ce midi.
Voici le code, simplifié, de la requete que je voudrais utiliser:

SELECT Stock.Unite, Produit.Libelle, SR1.qttVente, SR2.qqtFac
FROM Produit, Stock LEFT OUTER JOIN (SELECT...) AS SR1 LEFT OUTER JOIN
(SELECT...) AS SR2.

Windev me dit "Mot LEFT inatendu"... Il s'agit du second LEFT !

Je suis perdu, j'ai consulté plusieurs site sur le langage SQL et je n'ai pas
trouvé de solutions.

Merci de votre aide.


Ju Pirson
SONAJEF sprl


salut,
apparement tu utilises SqlServeur non?
dans ce cas tu dois faire un HexecuterequeteSql() en déclarant le nom
de ta connexion ansi que le paramètre HrequeteSansCorrection...
et normalement ça marche !
@+++

--
[Bernard Vessiot]
34980 Saint Gély du Fesc
jci-53el@iximail.com
Posté le 17 novembre 2006 - 11:34
Alors tu peux essayer ceci:
SELECT Stock.Unite, Produit.Libelle, SR1.qttVente, SR2.qqtFac
FROM Produit, Stock LEFT OUTER JOIN (SELECT...) AS SR1,stock LEFT OUTER JOIN (SELECT...) AS SR2.

Frédéric.
Posté le 17 novembre 2006 - 11:35
Non j'utilise HFClientServeur...

Je m'en sort pas !!!
Posté le 19 novembre 2006 - 10:53
SELECT Stock.Unite, Produit.Libelle, SR1.qttVente, SR2.qqtFac
FROM Produit,
Stock
LEFT OUTER JOIN (SELECT...) AS SR1
LEFT OUTER JOIN (SELECT...) AS SR2

Il me semble que la structure du "FROM" est surprenante.....

Pour les 2 premières tables, il manque les jointures.
Posté le 20 novembre 2006 - 10:38
La virgule correspond à un INNER JOIN si mes souvenirs SQL sont exactes.

J'ai essayer de plusieurs façons différentes mais sans succès.

Je vais passer par plusieurs requête différentes... Tant pis.


Merci quand meme.


Ju Pirson
Posté le 21 novembre 2006 - 20:09
Sorry to write in english but i think you should try this:

SELECT Stock.Unite, Produit.Libelle, SR1.qttVente, SR2.qqtFac
FROM Produit, Stock LEFT JOIN (SELECT...) AS SR1, Stock LEFT JOIN (SELECT...) AS SR2.