Lien entre 2 tables sans retrait

Signaler
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021
-
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021
-
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

10 réponses

Messages postés
14433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021
807
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021

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
Messages postés
14433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021
807
"qui ne fonctionne pas": message d'erreru, résultat inattendu?
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021

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 !
Messages postés
14433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021
807
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.
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021

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
Messages postés
14433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021
807
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.
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021
>
Messages postés
14433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021

????? c'est au dessus !!
Messages postés
14433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 mars 2021
807
est-ce ton premier exercice de jointure entre tables?
je suggère de commencer par des exercices plus simples.
Messages postés
31553
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 mars 2021
3 295
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	

Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021

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
Messages postés
31553
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 mars 2021
3 295
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.
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021

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
Messages postés
31553
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 mars 2021
3 295
Je te repose donc mes deux principales questions :

C'est bien à SQL server que tu utilises comme base de données ?
Quelle version ?
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021

J'utilise une base accès !!
Messages postés
31553
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 mars 2021
3 295
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 !
Messages postés
57
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2021

Bonjour,

HELP !!

Un coup de main en ... Access

Merci par avance