Lien entre 2 tables sans retrait

jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

La recherche est facile à énoncer ... mais je ne sais pas par où m'orienter au départ :

2 tables : Produits et Promos avec un lien dans Promos qui reprend l'ID de Produits.

Je voudrais afficher tous les produits mais quand c'est en promo, afficher le prix en promo !

J'ai beau essayer ...

Merci par avance
A voir également:

10 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Voici l'une des requetes que j'ai essayé de faire (mais qui ne fonctionne pas :-() :

<CFQUERY name="TableProduits2" datasource="#session.dbname#">
SELECT
Produits.Prod_ID,
Produits.Fam_ID,
Produits.SiteName,
Produits.PU,
Produits.Prod_HT,
Produits.Qte
Produits_promos.PPromos_ID,
Produits_promos.Prod_ID,
Produits_promos.Promotion,
Produits_promos.Promo_contenu,
Produits_promos.Promo_deb,
Produits_promos.Promo_fin
FROM Produits,Produits_promos
WHERE Produits.SiteName='#Session.site#'
AND Produits.Fam_ID = 363
ORDER BY Produits.Prod_ID
</CFQUERY>

Je n'ai fait cela ! et je ne sais pas par où m'orienter !

Merci par avance
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
"qui ne fonctionne pas": message d'erreru, résultat inattendu?
0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
pas de msg d'erreur mais ne fais pas ce que je veux !

La recherche est facile à énoncer ... mais je ne sais pas par où m'orienter au départ :

2 tables : Produits et Promos avec un lien dans Promos qui reprend l'ID de Produits.

Je voudrais afficher tous les produits mais quand c'est en promo, afficher le prix en promo !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
montre-nous donc ce que cela fait, et explique en quoi cela diffère de ce que tu souhaites.
cela va probablement t'aider à progresser vers la solution.
0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Pour être complet, je rajoute :

<TR>
<TD class="txtmm"> Quantité *</TD><!--- Quantité --->
<TD class="txtmm">
<SELECT name="form.Prod_ID" required="yes">
<OPTION class="txtmm" value="">Réponse Quantité requise</OPTION><!--- Réponse Quantité requise --->
</CFOUTPUT>
<CFOUTPUT query="TableProduits2">
<CFIF #TablePromos.Promotion# IS 0>
<OPTION class="txtmm" value="#Prod_ID#">#TableProduits2.Qte# cartiboks à #lsnumberformat(TableProduits2.PU,'9.99')# € HT pièce soit #lsnumberformat(TableProduits2.Prod_ht,'9.99')# € HT</OPTION>
<CFELSE>
<CFIF #TablePromos.Promo_contenu# IS "P">
<cfset PPU=(#PU#*(100-#TablePromos.Promotion#)/100)>
<cfset PHT=(#Prod_ht#*(100-#TablePromos.Promotion#)/100)>
<OPTION style="background: red" value="#TableProduits2.Prod_ID#">#TableProduits2.Qte# cartiboks à #lsnumberformat(PPU,'9.99')# € HT pièce soit #lsnumberformat(PHT,'9.99')# € HT</span></OPTION>
</CFIF>
<CFIF #TablePromos.Promo_contenu# IS "Q">
<cfset PQte=(#TableProduits2.Qte#*(100+#TablePromos.Promotion#)/100)>
<OPTION style="background: green" value="#TableProduits2.Prod_ID#">#PQte# cartiboks à #lsnumberformat(TableProduits2.PU,'9.99')# € HT pièce soit #lsnumberformat(TableProduits2.Prod_ht,'9.99')# € HT</span></OPTION>
</CFIF>
</CFIF>
</CFOUTPUT>
</SELECT>
</TD>
</TR>




Ce sera plus facile pour comprendre !
Merci par avance
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
tu ne montres pas quelles sont les données dans les deux tables.
montre-nous le résultat de la requête, avant la mise en page par ton code.
0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
????? c'est au dessus !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
est-ce ton premier exercice de jointure entre tables?
je suggère de commencer par des exercices plus simples.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

(sans certitude pour la syntaxe n'ayant pas de sqlserver sous la main... )
Mais, Avec une jointure et une vérif sur isnull
Un truc du genre
SELECT 
    P.Prod_ID,
    P.Fam_ID,
    P.SiteName,
    P.PU,
    P.Prod_HT,
    P.Qte
    PP.PPromos_ID,
    PP.Prod_ID,
    PP.Promotion,
    PP.Promo_contenu,
    PP.Promo_deb,
    PP.Promo_fin,
    ISNULL(PP.Promotion,P.PU) as PRIX
  FROM Produits P 
  LEFT JOIN Produits_promos PP ON PP.Prod_ID = P.Prod_ID
  WHERE P.SiteName='#Session.site#'
    AND P.Fam_ID = 363
  ORDER BY P.Prod_ID	

0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Avant tout merci de votre aide !
Mais ce n'est pas encore cela :-(
ISNULL(PP.Promotion,P.PU) as PRIX ne supporte qu'1 argument.
Difficulté supplémentaire PP.promos n'est pas un prix mais un pourcentage.
Pour l'instant cela 0 ou -1 au niveau du prix quand j'enlève , P.PU à ISNULL
Merci pour votre patience !
Cordialement
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
C'est bien à SQL server que tu utilises comme base de données ?
Quelle version ?

Car la fonction is null en SQL server accept 2 paramètres...

Et sinon, tu peux très bien utiliser à If.

pour ce qui est des champs, n'ayant pas d'explication dans ce que tu nous a donné j'ai fait au jugé. À toi de remplacer par les bons champs.
0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir
Excusez cette interruption due à une grosse grippe !
Mais malgré vos conseils pas de solution en vue
Je joins les 2 tables :


Merci par avance
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Je te repose donc mes deux principales questions :

C'est bien à SQL server que tu utilises comme base de données ?
Quelle version ?
0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
J'utilise une base accès !!
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ah ben alors forcément les réponses que je te donne risque de ne pas fonctionner....
D'où l'importance de correctement choisir le forum dans lequel on pose ces questions...

Je déplace donc ta question dans le forum access !
0
jeanmarieb Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

HELP !!

Un coup de main en ... Access

Merci par avance
0