Requete sql

Le
Jacques TREPP
Bonjour,
je n'ai pas les idées très claires ce matin, et je cale sur une requete
"toute bète".
j'ai une table 'chamnres' avec numéro, libellé, etc
j'ai une table fiche_resa avec num_chambre, date, etc.
je voudrais récupérer toutes les chambres qui ne sont pas présentes dans
fiche_resa dans une fourchette de dates.
En clair, ça me sert à connaitres toutes les chambres disponibles pour une
période donnée.

j'ai essayé des inner outer sans succes.

Merci de déboucher moncerveau embrumé. :D

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques TREPP
Le #14515511
ça ressemblerait un peu à ça :

select no_chambre, libelle_chambre from chambres
where (select chambre from fiche_resa where chambre = no_chambre and dtresa
between '20080418' and '20080420') is null

l'erreur retournée est :
ERROR: more than one row returned by a subquery used as an expression

je suis en Postgresql, j'aurais du le dire tout de suite.
cordialement

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Jerome PAULIN
Le #14515501
Jacques TREPP a écrit :
ça ressemblerait un peu à ça :

select no_chambre, libelle_chambre from chambres
where (select chambre from fiche_resa where chambre = no_chambre and
dtresa between '20080418' and '20080420') is null

l'erreur retournée est :
ERROR: more than one row returned by a subquery used as an expression

je suis en Postgresql, j'aurais du le dire tout de suite.
cordialement




Deux manières possibles :

avec une sous requete :
select leschamps from latable where identifiant not in (select
identifiant where reservation=true)

avec un jointure :
selectleschamps from latable left join latablereservation where
reservation is null

gg
Jacques TREPP
Le #14515491
"Jerome PAULIN" news:48158ca5$0$879$
Jacques TREPP a écrit :
ça ressemblerait un peu à ça :

select no_chambre, libelle_chambre from chambres
where (select chambre from fiche_resa where chambre = no_chambre and
dtresa between '20080418' and '20080420') is null

l'erreur retournée est :
ERROR: more than one row returned by a subquery used as an expression

je suis en Postgresql, j'aurais du le dire tout de suite.
cordialement




Deux manières possibles :

avec une sous requete :
select leschamps from latable where identifiant not in (select identifiant
where reservation=true)

avec un jointure :
selectleschamps from latable left join latablereservation where
reservation is null

gg




Bonjour et merci.
j'ai réalisé la requete sous cette forme :

select distinct no_chambre, libelle_chambre from chambres
where (select chambre from fiche_resa
where chambre = no_chambre and dtresa between '20080418' and '20080420'
limit 1) is null

l'erreur vien du fait que ma première sous-requete pouvait retourner
plusieurs valeurs, d'où le LIMIT 1.

cordialement
--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Daniel
Le #14515481
Jacques TREPP a écrit :
Bonjour,
je n'ai pas les idées très claires ce matin, et je cale sur une requete
"toute bète".
j'ai une table 'chamnres' avec numéro, libellé, etc
j'ai une table fiche_resa avec num_chambre, date, etc.
je voudrais récupérer toutes les chambres qui ne sont pas présentes dans
fiche_resa dans une fourchette de dates.
En clair, ça me sert à connaitres toutes les chambres disponibles pour
une période donnée.

j'ai essayé des inner outer... sans succes.

Merci de déboucher moncerveau embrumé. :D



Salut,

voici un exemple a adapté dans ton cas et qui fonctionne :

select chamresa.*, fiche_resa.* from chamresa left join fiche_resa on
chamresa.id= fiche_resa.id where fiche_resa is null

--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Jacques TREPP
Le #14515471
"Daniel" news:48159600$0$9847$

Salut,

voici un exemple a adapté dans ton cas et qui fonctionne :

select chamresa.*, fiche_resa.* from chamresa left join fiche_resa on
chamresa.id= fiche_resa.id where fiche_resa is null

--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)




Merci Daniel,
j'ai constuit ma requete de la façon suivante :
//Requete de sélection des chambres libres
//g_requete = "select distinct no_chambre, libelle_chambre from chambres"...
//+ " where (select chambre from fiche_resa "...
//+ " where chambre = no_chambre and dtresa between " + quote(date1) + " and
" + quote(date2) + " limit 1) is null"...
//+ " and etat = 0 "

ça me permet de n'obtenir que des chambres dont le numéro ne figure pas dans
les fiches résa pour la période indiquée, et en plus (2eme effet qui
s'coule) d'écarter les chambres dont l'état ne serait pas = 0 (chambre
fermée pour travaux, par exemple.

merci encore




--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Publicité
Poster une réponse
Anonyme