Problème:
Au départ, j'avais une requête qui fonctionnait très bien mais je dois maintenant la changer pour tirer plus de champs. Lorsque j'essaie d'exécuter la nouvelle requête, elle choisit un nom de champ et dit que je ne l'ai pas incluse dans la fonction d'agrégat. Chaque fois que j'obtiens cette erreur, je peux ajouter le champ que l'erreur spécifie à l'instruction Group By et le message d'erreur choisira un nouveau champ qui n'est pas inclus. Quelqu'un at-il une idée de comment je peux obtenir la même information que je recevais avec la requête originale juste avec plus de champs?Pourquoi ma requête nécessite-t-elle plus de champs dans mon groupe?
Description de la façon dont la requête est censé fonctionner:
La requête est destinée à tirer un enregistrement pour chaque ensemble distinct de readings_miu_id s et ReadDate s (Le champ PREMID est le même pour chaque distincte readings_miu_id).
Recherche d'origine:
strSql3 = " SELECT Distinct readings_miu_id, ReadDate, PremID " & _
"INTO analyzedCopy2 " & _
"FROM analyzedCopy "
DoCmd.SetWarnings False
DoCmd.RunSQL strSql3
DoCmd.SetWarnings True
Nouvelle requête:
strSql3 = " SELECT Top 1 readings_miu_id, Reading, ReadDate,Format([MIUtime],'hh:mm:ss') AS ReadTime,MIUwindow,SN,Noise,RSSI,ColRSSI,MIURSSI,Firmware,CFGDate,FreqCorr,Active,MeterType,OriginCol,ColID,Ownage,SiteID,PremID , Neptune_prem.prem_group1, Neptune_prem.prem_group2,ReadID " & _
"INTO analyzedCopy2 " & _
"FROM analyzedCopy " & _
"Group By readings_miu_id, ReadDate, PremID " & _
"Order By readings_miu_id, ReadDate, ReadID, PremID "
DoCmd.SetWarnings False
DoCmd.RunSQL strSql3
DoCmd.SetWarnings True
Pourquoi vous regroupez-vous? il ne semble pas y avoir d'agrégats dans votre requête. – YonahW
Parce que j'ai besoin de l'enregistrement TOP 1 pour chaque regroupement de combinaison readings_miu_id/ReadDate Distinct et on m'a déjà dit qu'utiliser une instruction Group By avec lui était une façon de le faire. – Bryan
TOP N ne fonctionne jamais sur des ensembles individuels. C'est-à-dire, lorsque SELECT TOP N est la clause externe principale de votre requête, vous n'obtiendrez que N valeurs correspondantes (pas d'enregistrements, mais des valeurs, comme TOP N dans Jet/ACE renvoie des liens).Votre TOP 1 ne retournera qu'une seule valeur correspondante. –