-2
votes

Comment réparer la syntaxe fin comme dans SQL?

Une autre erreur de syntaxe apparaît dans ma requête comme ci-dessous (erreur dans le dernier paragraphe). Mon premier post relié à cette requête a été corrigé après avoir ajouté un "cas" manquant à celui-ci, mais celui-ci est apparu après avoir essayé de l'exécuter. XXX

 capture d'écran < / p>


9 commentaires

Pourquoi demandez-vous à nouveau cette question? La réponse de la première question ne vous a-t-elle pas aidé?


Mec, c'est une question différente, pas même la même fonction. Lisez d'abord avant de le marquer comme dupliquer peut-être?


Pouvez-vous souligner la différence pour moi? Il me manque d'une manière ou d'une autre ...


La précédente était une erreur de syntaxe sur "Quand" (ligne 22), que j'ai corrigée et exécutée. Maintenant, je reçois une erreur de syntaxe au bas de la requête (ligne 44) près de "comme". De quoi d'autres avez-vous besoin?


Mais le code dans les deux questions est identique, et la raison de l'erreur est la même. Avez-vous essayé le correctif de la première question sur le code dans la deuxième question?


La première question était pour la première partie du code, il ne faisait que souligner cette erreur (lorsque) pour toute la requête. Je l'ai changé selon l'aide reçue précédemment et maintenant cette nouvelle erreur de syntaxe apparaît sous un mot-clé différent.


Et je viens de modifier le code selon les 2 réponses ci-dessous, la même erreur de syntaxe est toujours là. Que puis-je faire avec mon problème de "dupliqué" maintenant?


Modifiez votre question et ajoutez le code lorsque vous l'avez maintenant et inclure une partie du code avant et après, car l'erreur réelle pourrait être sur une ligne avant ou après où SQL Server dit qu'il est. Le code dans les deux réponses ci-dessous est à la fois sans erreur, donc si vous obtenez une erreur avec ces réponses, l'erreur est sur une ligne différente de la requête.


Noté. Devrais-je simplement éditer cet article ou créer un nouveau? Les autres utilisateurs peuvent-ils le voir même s'il est marqué comme un duplicata?


3 Réponses :


0
votes

Si vous avez besoin de deux colonnes, vous avez besoin de deux cas xxx


1 commentaires

Ensuite, vous devez mettre à jour votre question et ajouter le code de requête complète.



0
votes

Si vous avez manqué une deuxième comparaison xxx


0 commentaires

1
votes

Je ne sais pas si c'est ce qui cause l'erreur, mais vous n'avez pas besoin du comme alias dans votre groupe par clause. Vous en avez seulement besoin dans la liste Sélectionner.

Donc, au bas de votre requête (après le groupe par), vous pouvez supprimer comme qtylastweek et comme QTy2Weeksago

Si cela ne résout pas le problème, l'erreur doit être avant la partie de la requête qui vous apparaît maintenant dans votre question. Je ne vois aucune erreur dans le reste du code que vous présentez actuellement.


6 commentaires

Je vois la même chose. Besoin de supprimer alias et d'ajouter une virgule pour indiquer la fin de la colonne dans le groupe par


Oh oui, la virgule manquante provoquera définitivement une erreur, bonne prise @NonProgrammer


Vient de modifier et exécuté, le message d'erreur est maintenant: MSG 156, niveau 15, état 1, procédure [...], ligne 45 Syntaxe incorrecte près du mot-clé «cas».


Avez-vous corrigé la virgule disparue après le premier cas du groupe? Pouvez-vous publier le code qui génère actuellement l'erreur?


Oui, j'ai enlevé l'alias et j'ai ajouté la virgule. Voici la dernière erreur: msg 8120, niveau 16, état 1, procédure IDB_DATASFORSQLTesting, ligne 18 colonne 'smsserver01.storesql.dbo.rpt_itm_d.f64' n'est pas valide dans la liste Sélectionner car il n'est pas contenu dans une fonction d'agrégat ni Groupe par clause. Je suppose que l'alias doit être là.


Stackoverflow.com/Questtions/13999817/...