|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
salut le phorum
voilà mon problème j'ai réalisé via access une BDD avec sql server a l'aide de formulaire un outil access permet a plusieurs personnes de gérer des appels sortants et entrants cela fonctionne très bien par contre pour créer des reporting je passe par excel car ce n'est pas une grosse base... donc j'ai créer mes liens qui vont bien pour relier les tables sql server vers excel mais si je veux creer une requête avec des conditions cela me met le message syntaxe incorrecte vers '=' par contre sans condition iif cela fontionne très bien voici le code utilisé (pour info ce code fonctionne très bien dans access puisque je l'ai pris d'access pour le copier dans le query mais ca bloque) Code :
munity |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 665 ![]() |
Bonjour,
10 secondes de recherche vous auraient donné la réponse en utilisant votre moteur de recherche préféré IIf n'existe pas en SQL, et peut être réécrit en utilisant la clause CASE : Code :
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
00
|
|
|
#3 | |
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
merci pour ta réponse
oui je sais pour les espaces dans les noms de colonnes je débute en BDD alors un peu de compréhension siou plé missié pour la prochaine base de données je le ferais plus par contre pourquoi cela fonctionne dans access le iif ou tu vas me dire que cela n'a rien a voir mais cela reste du sql ou cela veut dire qu'il y a plusieurs syntaxe en sql... ben si c'est le cas c'est pas gagné pour moi.... Ah oui je me suis permis de corriger ton code il y avait des erreurs (travail d'amateur... Citation:
munity |
|
|
|
00
|
|
|
#4 | ||
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
j'aurais encore besoin d'un petit conseil
voici mon code apparemment la ligne qui contient <= ne passe pas syntaxe erreur sur '<=' je suppose que c'est le meme probleme que pour le '=' mais je ne vois pas trop quel opérateur on peut mettre pour un inférieur ou égal Code :
munity |
||
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
re
bon je pense avoir trouvé pour inclure des opérateurs dans ma requête comme = ou <= par contre je souhaiterai inclure un test sur une date mais tous les noms que j'indique pour avoir la date du jour m'indique que la fonction n'existe pas voir texte en rouge dans le code quel est la bonne fonction a employer sachant que j'ai également utilisé Date() sysdate() now() merci d'avance Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
J'ai trouvé la solution il faut mettre GETDATE().
|
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 665 ![]() |
Désolé de ne pas t'avoir guidé pour la suite, c'est cool que tu aies trouvé.
Bonne Année à toi aussi Citation:
Tu peux télécharger la documentation de SQL Server, qui contient celle de T-SQL, l'implémentation de SQL dans SQL Server. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
pas de problème
apprendre par soi meme c'est plus enrichissant merci en tout cas de m'avoir mis sur la piste et de m'avoir aidé merci aussi pour les liens.. a bientot peut être pour d'autres conseils munity |
|
|
00
|
|
|
#9 | |||
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
coucou me revoilà avec un petit problème avec le group by
voici mon code Code :
si je ne le mets pas il doublonne les informations Citation:
il devrait logiquement agglomerer le 1 et le 17 pour faire 18 pour ne sortir que Test à planifier et non pas test à planifier et test planifié j'espère être clair... et si je l'ajoute il m'indique que la syntaxe est incorrecte vers 'then' pour etre plus clair je voudrai qu'il fasse le group by sur la colonne 'Delta' mais celle ci n'est pas reconnu message nom de colonne non valide 'Delta' y aurait il une ame charitable pour aider un débutant sur sql server meme une piste... merci d'avance munity |
|||
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 665 ![]() |
En fait tu n'as pas besoin de ce CASE dans le GROUP BY.
Le CASE du SELECT te sers simplement à retourner une certaine valeur en fonction d'une règle métier, mais l'agrégat (et non pas "agglomerer" C'est pour cela que tu peux donc éliminer le CASE du GROUP BY, puisque l'expression du GROUP BY contient déjà ces deux colonnes En outre, pour que l'expression de ta requête soit plus simple, tu peux par exemple en faire une vue, dont le plan d'exécution sera aussi conservée dans le cache Cela te permettrait donc d'écrire SELECT mesColonnes FROM maVue @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#11 |
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
merci de ta réponse
j'ai enlevé le case du group by mais toujours le meme problème de doublons mais en fait j'avais ajouté le case dans le group by car mon problème est que pour un meme test je peux avoir des RDV pris à 0 (en attente) et à 1 (validé) dans mon cas il distingue les 0 et 1 alors que je voudrai qu'il me prenne la variable delta qui est un champ calculé qui me permet de définire le reste à faire pour le test donc si delta = 0 test planifié sinon test à planifier c'est ce point qui me bloque en effet en faisant une vue je pourrais filtrer directement sur le résultat du delta et ainsi obtenir ce que je souhaites mais juste une question comment faire pour afficher une vue ? |
|
|
00
|
|
|
#12 | ||
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 278 ![]() |
bon j'ai fini par trouver
j'ai donc creer une vue dans sql server avec les champs dont j'ai besoin c'est pas trop évident quand on début mais sql server est plutot ludique avec un peu de recherche et de connerie... j'ai ensuite importer cette vue et une table pour le test des statuts des RDV et tout roule voici mon code Code :
mais bon comme je commence je risque fort de revenir munity |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com