2017-03-09 1 views
0

Lorsque j'exécute ma requête dans le studio de gestion, cela fonctionne correctement, mais dans une tâche d'analyse de flux, elle génère une erreur: Erreur de compilation de requête: nom de colonne non valide: 'afkorting'. Colonne avec un tel nom n'existe pas ..requête d'analyse de flux obtenir le nom de colonne d'erreur n'existe pas, mais il le fait?

J'ai téléchargé les tableaux d'entrée pour vérifier si quelque chose s'est mal passé avec le téléchargement, puis-je résoudre ce problème?

C'est ma requête:

; WITH Check AS 

    (
    SELECT afkorting, * 
    FROM Reizen RE 
    LEFT JOIN Gegevens AP 
    ON RE.ID = AP.code 
    ) 

SELECT * 
    FROM Check CH 
    JOIN Model VM 
    ON CH.afkorting = VM.Station 
    WHERE VM.h_station = VM.v_station 
    AND DATEPART(hour, CH.MsgReportDate) = VM.start_uur 
    AND (DATEPART(minute, CH.MsgReportDate) BETWEEN VM.start_minuut AND VM.eind_minuut) 
    AND DATEPART(weekday, CH.MsgReportDate) = VM.weekdag 

quelqu'un Hope peut me aider!

* Problème résolu: vous devez donner à tous columnNames, donc pas SELECT * mais SELECT colonne1, colonne2 et utiliser les préfixes données de la table, dans mon cas: AP.column1, RE.column2 etc *

+0

Avez vous avez essayé de spécifier des colonnes explicitement plutôt que d'utiliser *? –

+0

Merci pour l'astuce, il ne donne pas d'erreur sur la colonne 'afkorting', mais il donne la même erreur sur la première colonne donnée et quand je supprime celui-ci, il donne la même erreur pour la colonne qui est maintenant donnée premier?! Je suppose que c'est un bug alors? – avk

+0

Je ne pense pas qu'ils supportent 'WITH Check' dans l'analyse des flux. – Armin

Répondre

0

Juste résumer tous les commentaires ci-dessus pour résoudre le problème, j'ai fait quelques tests pour les éléments de langue Stream Query WITH, SELECT & JOIN. Voici ma liste de résultats pour le problème.

  1. Sans JOIN, en utilisant les noms de colonnes avec le symbole * dans le champ WITH est correcte pour l'exécution de l'ASA.
  2. Avec JOIN, il est nécessaire de lister tous les noms de colonne souhaités sans le symbole * pour l'exécution. La raison semble être d'éviter l'ambiguïté avec le conflit de noms de colonnes.
0

vous devez donner à tous les noms de colonnes, pas

SELECT * but SELECT column1, column2

et utiliser les préfixes données de la table, par exemple dans mon cas:

AP.column1, RE.column2 etc