2010-05-12 2 views
1

je suis nouveau pour accéder sql et je construit une instruction select qui ressemble à ceci:sql-accès: HAVING et opérateur =

SELECT [Lab Occurrence Form].[Practice Code], 
     Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) AS [CountOf1 0 Preanalytical (Before Testing)], 
     [Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] 
    FROM [Lab Occurrence Form] 
WHERE ((([Lab Occurrence Form].[Occurrence Date]) Between #9/1/2009# And #9/30/2009#)) 
having ([CountOf1 0 Preanalytical (Before Testing)] != 0) 
GROUP BY [Lab Occurrence Form].[Practice Code], [Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]; 

son goût pas ma clause HAVING. Qu'est-ce qui va pas avec ça? comment puis-je faire un! = ??

Répondre

2

Il ne fonctionne pas parce que la clause HAVING doit être après la GROUP BY - emploi:

SELECT [Lab Occurrence Form].[Practice Code], 
     Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) AS [CountOf1 0 Preanalytical (Before Testing)], 
     [Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] 
    FROM [Lab Occurrence Form] 
    WHERE ((([Lab Occurrence Form].[Occurrence Date]) Between #9/1/2009# And #9/30/2009#)) 
GROUP BY [Lab Occurrence Form].[Practice Code], [Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] 
    HAVING Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) != 0); 

En outre, vous ne peuvent généralement pas utiliser l'alias de colonne GROUP BY/HAVING clauses.

!= est ANSI 92? standard, mais <> devrait également fonctionner.

+0

! = Peut très bien être ANSI 92 SQL, mais il n'est pas supporté par le mode "compatibilité" Access SQL92 - seulement <> fonctionne. –

1

Utilisez <>. IIRC, != travaillerait en MySQL si

+0

essayé et cela n'a pas fonctionné, quand j'ai essayé d'exécuter une requête, il m'a effectivement demandé la valeur de [CountOf1 0 Preanalytical (Before Testing)] –