[ACCESS] Problème de syntaxe d'une requête !

Problème de syntaxe d'une requête ! [ACCESS] - SQL/NoSQL - Programmation

Marsh Posté le 06-06-2003 à 14:03:20    

Voilà je voudrais savoir si Access pouvait faire comme SQL Server :
 

SELECT TOP 5 * FROM MaTable


 
voilà la syntaxe qui m'intéresse "TOP". Elle permet de sélectionner un nombre maximal de lignes définies


Message édité par dinbougre888 le 10-06-2003 à 14:14:39
Reply

Marsh Posté le 06-06-2003 à 14:03:20   

Reply

Marsh Posté le 06-06-2003 à 14:14:43    

non


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 06-06-2003 à 16:00:18    

t'es vraiment sûr qu'il peut pas ? :heink:
 
par contre t'as oublié de mettre un nom de champ (ou une étoile) entre le 5 et le FROM

Reply

Marsh Posté le 10-06-2003 à 14:14:27    

euh oui désolé j'ai mal recopié, je l'avait fait et ça marche pas

Reply

Marsh Posté le 10-06-2003 à 19:40:55    

Dinbougre888 a écrit :

Voilà je voudrais savoir si Access pouvait faire comme SQL Server :
 

SELECT TOP 5 * FROM MaTable


 
voilà la syntaxe qui m'intéresse "TOP". Elle permet de sélectionner un nombre maximal de lignes définies


Bon, ben le "TOP" fonctionne, sous Access 2000 et + en tout cas :
 

SELECT a1.label, (select top 1 u1.name from correction c1, user u1 where u1.id = c1.user_id  
    and c1.id = (
        select max(correction.id) from correction where correction.article_id = a1.id))
FROM article AS a1;


 
J'ai fait cette requête tout à l'heure dans Access pour un autre topic, et je me suis apperçu qu'en fait j'utilisais un TOP.

Reply

Marsh Posté le 12-06-2003 à 17:50:14    

MagicBuzz a écrit :


Bon, ben le "TOP" fonctionne, sous Access 2000 et + en tout cas :
 

SELECT a1.label, (select top 1 u1.name from correction c1, user u1 where u1.id = c1.user_id  
    and c1.id = (
        select max(correction.id) from correction where correction.article_id = a1.id))
FROM article AS a1;


 
J'ai fait cette requête tout à l'heure dans Access pour un autre topic, et je me suis apperçu qu'en fait j'utilisais un TOP.


 
bon bah je v essayer ce soir

Reply

Marsh Posté le 12-06-2003 à 17:51:42    

en général je n'utilise que TOP 1 (je suis quasi sûr qu'il fonctionne dans Access 2000), je pense que d'autres valeurs fonctionnent aussi :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-06-2003 à 18:31:58    

antp a écrit :

en général je n'utilise que TOP 1 (je suis quasi sûr qu'il fonctionne dans Access 2000), je pense que d'autres valeurs fonctionnent aussi :D


 
euh une question me trotte :??:
moi j'avais fait un SELECT TOP 0 * FROM MATABLE
 
me demandez pas pk 0 mais j'en avais besoin :)

Reply

Marsh Posté le 12-06-2003 à 18:59:50    

je me demande quand même pourquoi :heink:
Si c'est juste pour avoir les colonnes en général je fais WHERE ID = -1 :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-06-2003 à 09:31:17    

antp a écrit :

je me demande quand même pourquoi :heink:
Si c'est juste pour avoir les colonnes en général je fais WHERE ID = -1 :D


 
en fait je veux ouvrir mon recordset en écriture donc j'ai pas besoin qu'il me retourne de ligne :)
Sur sqlserver j'ai toujours fait SELECT TOP 0 * FROM MATABLE
du coup sur access j'ai fait SELECT * FROM MATABLE WHERE 0=1
ça donne la même chose que ton ID = -1 :)

Reply

Marsh Posté le 13-06-2003 à 09:31:17   

Reply

Marsh Posté le 13-06-2003 à 09:51:50    

Je préfère 0=1 à ID=-1, parceque avec un peu de pas de chance, il peut y avoir un id=-1 (je l'utilise souvent quand je fais des tables avec des relations père/fils, afin de différencier l'enregistrement racine des autres)

Reply

Marsh Posté le 13-06-2003 à 09:58:29    

Ouais en effet 0=1 c'est encore mieux.
Pour l'id = -1 dans certains cas on est sûr que c'est impossible (autonumber par ex) puis c'est pas un drame qu'un enregistrement soit retourné :D


Message édité par antp le 13-06-2003 à 09:58:51

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-06-2003 à 10:00:07    

antp a écrit :

Ouais en effet 0=1 c'est encore mieux.
Pour l'id = -1 dans certains cas on est sûr que c'est impossible (autonumber par ex)


Bah dans Access, pas sûr, mais en effet, c'est peut-être impossible.
 
Mais dans SQL Server, non, avec un autonumber on peut mettre -1. Il suffit de faire "set identity off" avant la requête d'inserstion, et on peut spécifier soit-même l'id à inserrer.
 
ou alors c'est "set nocount on", chais pus :D (j'utilise les deux, c'est plus simple ;))

Reply

Marsh Posté le 13-06-2003 à 10:00:45    

sinon, moi je fais "where false", c encore plus simple ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed