|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
Bonjour
Je veux faire une requête entre 2 dates à saisir manuellement au moment de lancer la requête Si je spécifie (peu importe ce qu'il y a dans le SELECT/FROM) Code :
BETWEEN '20110101000000' AND '20110201000000' Je voudrais que la date soit à saisir au moment où j'exécute la requête, c'est à dire qu'au moment d'exécuter il soit demandé de saisir la date 1 puis la date 2 Dans ACCESS je mets: Code :
dbo_DATE BETWEEN [date debut mois(ex:20110101000000)] AND [date debut mois suivant (ex:20110201000000)])); Merci |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
Qu'est ce qui ne marche pas sous SQL SERVER? soyez plus précis? message d'erreur? Aucun résultat?
Précisez la version de SQL SERVER...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
SQL Server ne propose pas de formulaires, comme access.
SQL Server est conçu pour être interrogé par des clients. D'ailleurs vous devez bien lancer votre commande depuis un client, que je suppose être SSMS... Dans quel contexte cette requête devra être utilisée ? Vous avez plusieurs solutions : Créez un programme externe dans votre langage préféré, qui permet de saisir les deux dates, interroge SQL Server avec la requête qui va bien, et affiche le résultat Si vous tenez à exécuter cela depuis SSMS, vous pouvez faire par exemple une procédure stockée qui prend les dates en paramètre. bref, c'est en fonction de votre besoin, (vous pouvez aussi lier SQL Server sous Access). Dites en plus sur le contexte, on pourra peut être vous aider à trouver une solution adaptée, mais ce que vous faites, tel que vous le faites, n'est pas possible avec SQL Server. |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
Bonjour et merci de votre réponse
J'utilise SQL Server 2005 (je suis utilisateur final et je me sers de l'Analyseur de requêtes fourni avec comme Client) Je fais en quasi permanence des requêtes entre dates. Pour éviter (non pas que ce soit hyper contraignant) de ré-écrire la date dans la requête dans le WHERE avant de la lancer, j'aimerais pouvoir la saisir à chaque requête au moment où elle est lancée Je n'ai pas les compétences pour créer un programme me permettant de faire cela (et le rapport temps passé/bénéfice de l'outil serait dérisoire) et je ne sais pas non plus (d'ailleurs je doute que mon DSIO autorise l'utilisateur final à créer ses procédures) creer de procédures stockées. Je lie aussi SQL Server sous ACCESS, mais au fur et à mesure que je progresse dans ma connaissance du SQL, j'ai plutôt tendance à ne plus (vouloir) me servir d'ACCESS; d'où la demande Cordialement |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Donc si je comprend bien, vous gardez vos requetes dans un coin et vous les lancez à chaque fois en remplaçant les dates ?
Dans ce cas, vous pouvez créer des variables et utiliser vos variables dans votre/vos requete(s). Ainsi vos dates sont déclarées une seule fois (une seule saisie donc) et en plus au début du script... Par exemple : Code SQL :
|
||
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
Merci
Oui...je garde en effet mes requetes dans un coin et les lance à chaque fois en remplaçant les dates! (d'où ma demande afin d'améliorer les choses!) je vais me pencher sur les modalités, condition, syntaxe etc de déclaration de variables, pour aller plus loin; mais vous me donnez déja la réponse générale au 'comment' Pour le cas particulier (en simplifiant ma requête et en me contentant de copier bêtement la syntaxe que vous m'envoyez)) j'ai cependant un message d'erreur: DECLARE @Debut DATETIME ='2011-01-01 00:00:00' DECLARE @Fin DATETIME = '2011-02-01 00:00:00' SELECT NOMNAISS, @Debut FROM IDSJR, IDPAT WHERE IDSJR.IUPATM=IDPAT.IUPATM AND IDSJR.DATSRTSJR BETWEEN @Debut AND @Fin Serveur*: Msg 139, Niveau 15, État 1, Ligne 1 Impossible d'affecter une valeur par défaut à une variable locale. Serveur*: Msg 139, Niveau 15, État 1, Ligne 2 Impossible d'affecter une valeur par défaut à une variable locale. Serveur*: Msg 137, Niveau 15, État 1, Ligne 4 La variable '@Debut' doit être déclarée. Une idée? Version SQL 8.00.194 Merci |
|
|
00
|
|
|
#7 | |||
|
Membre Expert
![]() |
CETTE syntaxe est interdite en 2005:
Citation:
Code :
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
hmmm
La version date un peu... essayez de séparer la déclaration de l'affectation : Code SQL :
|
||
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
Merci cela marche
Juste pour ma culture, la version date d'un peu de combien? En tous cas encore merci |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
d'un peu de... 10 ou 11 ans...
|
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Médecin Département d'Information Médicale (DIM) Inscription : janvier 2009 Messages : 77 ![]() |
Cela commence à faire...
|
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() |
Il s'enflamme le aieeeuuuuu (un homme qui souffre apparemment
)Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
non je ne m'enflamme pas, je ne lis pas au même endroit que toi
Citation:
(un Serveur en 2000 avec un SSMS en 2005 peut-être?) Bon pour résumer, ça date de longtemps, voire plus
|
|
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com