Reqûete SQL qui fit de la résistance

Résolu
cs_jul21 Messages postés 10 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 21 septembre 2009 - 24 mars 2009 à 12:02
cs_jul21 Messages postés 10 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 21 septembre 2009 - 25 mars 2009 à 14:32
Bonjour à tous !!

J'ai une requête qui me fait de la résistance, la voici :

Insert Into TOTO (DateHeure,Vmoyenne,NomMachine,Periode)
Select Current_Timestamp , Avg(TagValue), StationName,Cast('h' as char)
From TEtatMachine20iWhere TagName'VMOYENNE' and cast (TagTimeStamp <gras>as DateTime)<</gras>Current_Timestamp
and Cast(TagTimeStamp as DateTime)>=Cast(DateAdd(hour,-1,Current_Timestamp) as DateTime)

l'erreur est la suivante :

Msg 8120, Niveau 16, État 1, Ligne 25
La colonne 'TEtatMachine20i.StationName' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
A voir également:

4 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 2
24 mars 2009 à 14:42
bonjour,

si tu utilise des fonctions d'agregat (moyenne en l'occurence), tu dois utiliser la clause GROUP BY pour indiquer sur quoi grouper

la apparement tu veux calculer la moyenne pour une machine et une periode données

essaie :

Insert Into TOTO (DateHeure,Vmoyenne,NomMachine,Periode)
Select Current_Timestamp , Avg(TagValue), StationName,Cast('h' as char)
From TEtatMachine20iWhere TagName'VMOYENNE' and cast (TagTimeStamp <gras>as DateTime)<</gras>Current_Timestamp
and Cast(TagTimeStamp as DateTime)>=Cast(DateAdd(hour,-1,Current_Timestamp) as DateTime)
GROUP BY StationName,Cast('h' as char)
3