vous avez essayé d'exécuter une requête qui ne comprennent pas l'expression spécifiée 'out_time" comme une fonction d'agrégation dans ms access
Im en utilisant Ms access comme ma base de données et je suis en utilisant la requête suivante pour obtenir le temps de travail:
select
in_time,
out_time,
datediff("n",b.in_time,c.out_time) as work_time,
log_date,
emp_id
from
(select
LogTime as in_time,
SrNo,
LogID as emp_id,
LogDate as log_date
from LogTemp
where Type='IN' ) as b
left join
(select
SrNo as out_id,
LogTime as out_time,
LogID as out_emp_id,
LogDate as out_log_date
from LogTemp
where Type = 'OUT'
group by SrNo) as c
on (b.SrNo <> c.out_id
and b.emp_id = c.out_emp_id
and b.log_date = out_log_date )
where
c.out_id > b.SrNo and
[log_date] >= #8/20/2012# and
[log_date] <= #8/20/2012# and
emp_id = "8"
group by b.SrNo;
Mais lorsque j'exécute la requête Im obtenir l'erreur suivante:
"you tried to execute a query that does not include the specified expression 'out_time'
as an aggregate function in ms access" error.
Toute suggestion où je fais l'erreur.
Vous ne regroupés par
Apparemment je suppose que vous vouliez dire à l'ORDRE PAR b.SrNo et pas le GROUPE?
Merci beaucoup pour la réponse, il fonctionne de mentionner les champs dans le groupe, mais le problème est que la sortie n'est pas de la comparaison de deux lignes, c'est la comparaison de toutes les lignes avec un de l'autre ![Structure de la Table][1] SrNo LOGID LOGDATE LOGTIME de TYPE 1 8 8/20/2012 9:32:12 AM Ma sortie doit les comparer et de les fournir à la différence de dans et en dehors des horaires de lignes successives. Pas tous les "et les lignes". Veuillez trouver l'écran ci-joint.
b.SrNo
. Qui out_time
(et in_time
, et log_date
, ...) voulez-vous?....Apparemment je suppose que vous vouliez dire à l'ORDRE PAR b.SrNo et pas le GROUPE?
Merci beaucoup pour la réponse, il fonctionne de mentionner les champs dans le groupe, mais le problème est que la sortie n'est pas de la comparaison de deux lignes, c'est la comparaison de toutes les lignes avec un de l'autre ![Structure de la Table][1] SrNo LOGID LOGDATE LOGTIME de TYPE 1 8 8/20/2012 9:32:12 AM Ma sortie doit les comparer et de les fournir à la différence de dans et en dehors des horaires de lignes successives. Pas tous les "et les lignes". Veuillez trouver l'écran ci-joint.
OriginalL'auteur saranya | 2012-09-14
Vous devez vous connecter pour publier un commentaire.
Vous avez un couple d'erreurs, dans le cas où vous essayez de faire un
GROUP BY
. Vérifiez tout d'abord que la MSDN pour le GROUPE PAR la syntaxe, des recommandations et des échantillons.Fondamentalement, sans aller plus loin, si vous utilisez
GROUP BY
, une colonne sur laSELECT
clause de non affectée par une fonction d'agrégation commeSUM
,AVG
, etc, devrait apparaître sur leGROUP BY
clause. Donc, dans votre cas, vous devez ajouter:Dans le GROUPE PAR de la 2e sous-requête. Et d'ajouter
Sur les principaux
GROUP BY
à la fin.Mais, comme l'a déjà souligné sur un commentaire, peut-être ce que vous voulez faire est un
ORDER BY
. Puis devrait être aussi facile que de remplacerGROUP
parORDER
et cela devrait fonctionner. Juste être sûr, c'est que ce que vous voulez.OriginalL'auteur Yaroslav
La dérivée de la table de C à la JOINTURE GAUCHE n'a pas besoin de la commande ou en groupement. Il n'y a pas de raison que je peux voir pourquoi il ne devrait pas correspondre à la table dérivée B à PARTIR de.
La déclaration finale de la requête externe devrait être de l'ORDRE PAR (comme indiqué) parce que la requête externe n'a pas de fonctions d'agrégation.
Je soupçonne que vous avez des problèmes avec l'un explicite rejoindre sur un pas de correspondance avec MS Access, de sorte que vous pourriez envisager de vous déplacer vers un endroit OÙ la déclaration.
OriginalL'auteur Fionnuala