Problème requete SQL avec ASP.

WRInaute passionné
Voici la structure de ma table (simplifiée)

[Apt ]
#aptID
aphoto
atype
...

[Availabilities]
#AID
aaptid
afrom
ato

Voici ce que je veux faire sachant que aaptid est en fait a mettre en relation avec aptID et que y'a plusieurs afrom par aptid.
Je veux donc selectionner aptID,aphoto,atype,afrom (le 1er afrom seulement) pour chaque APT.

Mon problème bah j'y arrive pas ! A chaque fois ca me prends tous les afrom... et donc fait grossir mon recordset en enregistrant plusieurs fois chaque apt alors qu'il le faut qu'une seule fois.

Merci pour votre aide.

Guillaume
 
WRInaute passionné
Faudrait que t'utilise deux requête.
La première récupère tous les AID et les aaptid de la table Availabilities en GROUP BY et la deuxième récupère les infos en relation aaptid et aptID

Heu... C'est assez clair ?
 
WRInaute passionné
BadProcESs a dit:
Faudrait que t'utilise deux requête.
La première récupère tous les AID et les aaptid de la table Availabilities en GROUP BY et la deuxième récupère les infos en relation aaptid et aptID

Heu... C'est assez clair ?

Non pas du tout...
Group by j'sais pas ce que ca fait en plus ...
 
WRInaute passionné
Heu... Bah ca vas pas être simple alors.
C'est une base access ? Si oui, t'a qua me mailer une petite base avec juste ces 2 tables et quelques fausses valeurs que je te fasse une petite requête qui va bien, parceque là je sais pas trop comment t'expliquer...
 
WRInaute passionné
aFrom est un champ date.
Il faut prendre la date la plus recente.

Et donc sortir tous les apartments avec les infos tirées de APT et sa date de dispo.

Guillaume
Ps : POur le mail , pas avant demain matin.
 
WRInaute passionné
Code:
SELECT aptID, aphoto, atype, MIN(afrom) , ato
FROM Apt
INNER JOIN Availabilities ON aaptid = aptID
GROUP BY aptID
ORDER BY aptID

Ca fait ce que tu veux, je crois (sous réserve que Access gère les jointures, la fonction MIN(), tout ça :D).

Fred
 
WRInaute passionné
Ca marche pas.
Expression de jointure non supportée qu'il me mets !
De plus, après le Min ... il aime pas non plus ...

Guillaume
 
WRInaute passionné
Change de base, alors :D Non, sérieusement je sais pas, apparemment Access gère les jointures mais il faut peut-être une syntaxe particulière. Quant à MIN(), on dirait que dans Access cette fonction n'accepte que des valeurs numériques. Y'a ptet autre chose pour les dates, ou alors il faut la convertir... Bref, tout doit être expliqué dans les docs, bonne lecture ;)

Fred
 
WRInaute passionné
George Abitbol a dit:
Change de base, alors :D Non, sérieusement je sais pas, apparemment Access gère les jointures mais il faut peut-être une syntaxe particulière. Quant à MIN(), on dirait que dans Access cette fonction n'accepte que des valeurs numériques. Y'a ptet autre chose pour les dates, ou alors il faut la convertir... Bref, tout doit être expliqué dans les docs, bonne lecture ;)

Fred

Bah etant developpeur, je pense que je vais garder celle qui me genere pleins de résultats puis travailler les résultats pour virer les doublons ... soit une belle optimisation lol

Temps d'execution 5 min donc 4min99 de traitement post requete ;-)
 
Nouveau WRInaute
type de db

Bonjour,

C'est bien une DB ACCESS ? ou SQL SERVER

EN ACCESS

SELECT Max(Availabilities.afrom) AS MaxDeafrom, Apt.atype, Apt.aphoto, Apt.aptID
FROM Availabilities INNER JOIN Apt ON Availabilities.aaptid = Apt.aptID
GROUP BY Apt.atype, Apt.aphoto, Apt.aptID;



si j'ai bien compris...
 
Discussions similaires
Haut