A voir également:
- Pb sur uen requete sql
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
1 réponse
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
18 févr. 2005 à 09:47
18 févr. 2005 à 09:47
Bonjour!
Oui, on peut t'aider sur une requête SQL si tu la mets et si tu expliques plus ton problème.
Non, personne ne viendra sur msn car le principe de ce forum est que tout le monde profite des réponses faites.
bonne journée!
Oui, on peut t'aider sur une requête SQL si tu la mets et si tu expliques plus ton problème.
Non, personne ne viendra sur msn car le principe de ce forum est que tout le monde profite des réponses faites.
bonne journée!
18 févr. 2005 à 10:04
19 févr. 2005 à 08:37
voici toutes les tables concernées :
ETUDIANT(no_etud, nom_etud, prenom_etud, annee_arrivee, diplôme, statut)
PROMOTION(nom_promo, annee_sortie, type_promotion)
RAPPORT(no_rapport, titre, date_sout, nom_promo#, no_entrep#)
ENTRREPRISE(no_entrep, nom_entrep, ad_entrep, no_pays#)
PAYS(no_pays, nom_pays)
ECRIT_PAR(no_rapport#, no_etud#)
PRETE_A(no_rapport, no_etud#, date_pret)
MOT_CLE(lib_mot_cle)
INDEXE_PAR(no_rapport#, lib_mot_cle#)
DECRITE_PAR(no_entep#, lib_mot_cle#)
La requête qui me pose problème est :
liste des promotions pours lesquels les rapports sont actuellement tous prêtés
J'ai réussi à faire une requpete mais je n'arrive pas la représenter entiérement à cose des condition pour les divions par 0. Voici ma requête :
SELECT RAPPORT.nom_promo, count(DISTINCT no_rapport) as a
INTO TEMP R1
FROM RAPPORT
GROUP BY RAPPORT.nom_promo
UNION
SELECT PROMOTION.nom_promo,0
FROM PROMOTION
WHERE nom_promo NOT IN
(SELECT RAPPORT.nom_promo
FROM RAPPORT)
;
SELECT PROMOTION.nom_promo, count(DISTINCT ECRIT_PAR.no_rapport) AS b
INTO TEMP R2
FROM PROMOTION, RAPPORT, ECRIT_PAR
WHERE PROMOTION.nom_promo=RAPPORT.nom_promo
AND ECRIT_PAR.no_rapport=RAPPORT.no_rapport
GROUP BY RAPPORT.no_rapport, PROMOTION.nom_promo
HAVING count(no_etud)>= 2
UNION
SELECT PROMOTION.nom_promo,0
FROM PROMOTION
WHERE nom_promo NOT IN
(SELECT PROMOTION.nom_promo
FROM PROMOTION, RAPPORT, ECRIT_PAR
WHERE PROMOTION.nom_promo=RAPPORT.nom_promo
AND ECRIT_PAR.no_rapport=RAPPORT.no_rapport
GROUP BY RAPPORT.no_rapport, PROMOTION.nom_promo
HAVING count(no_etud)>=2);
;
SELECT R1.nom_promo, b*100/a
FROM R1, R2
WHERE R1.nom_promo=R2.nom_promo
AND a <>0
UNION
SELECT R1.nom_promo,0
FROM R1
WHERE nom_promo NOT IN
(SELECT R1.nom_promo
FROM R1,R2
WHERE R1.nom_promo=R2.nom_promo
AND a <>0)
Je n'arrive pas à représenter la condition a<>0 en schéma relationnel car on ne met jamais de "where" au milieu d'u schéma...
Voici ma requête modifié dont je ne trouve pas l'erreur :
SELECT.nom_promo, count(no_rapport) AS a
INTO TEMP R1
FROM RAPPORT
GROUP BY nom_promo
UNION
SELECT nom_promo,0
FROM PROMOTION
WHERE nom_promo NOT IN
(SELECT nom_promo
FROM RAPPORT)
;
SELECT nom_promo AS b
INTO TEMP R2
FROM R1
WHERE a=0
;
SELECT RAPPORT.nom_promo, count(DISTINCT no_rapport) as c
INTO TEMP R3
FROM RAPPORT,R2
WHERE RAPPORT.nom_promo<>b
GROUP BY RAPPORT.nom_promo
;
SELECT PROMOTION.nom_promo, count(DISTINCT ECRIT_PAR.no_rapport) AS d
INTO TEMP R4
FROM PROMOTION, RAPPORT, ECRIT_PAR, R2
WHERE PROMOTION.nom_promo<>b
AND PROMOTION.nom_promo=RAPPORT.nom_promo
AND ECRIT_PAR.no_rapport=RAPPORT.no_rapport
GROUP BY RAPPORT.no_rapport, PROMOTION.nom_promo
HAVING count(no_etud)>= 2
;
SELECT R3.nom_promo, c*100/d
FROM R3, R4
WHERE R3.nom_promo=R4.nom_promo
UNION
SELECT b,0
FROM R2
L'ordinateur me dit divion by 0
Merci de vos réponses et de votre aide d'avance!