sql-access: предложение HAVING и оператор! = - PullRequest
1 голос

Я новичок в доступе к SQL, и я создал оператор выбора, который выглядит следующим образом:

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)];

Мне не нравится мое предложение HAVING. что с этим не так? как мне сделать! = ??

Ответы [ 2 ]

2 голосов
/ 12 мая 2010

Это не работает, потому что предложение HAVING должно быть после GROUP BY - используйте:

  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);

Кроме того, вы обычно не можете использовать псевдоним столбца в предложениях GROUP BY / HAVING.

!= это ANSI 92? стандартный, но <> также должен работать.

1 голос
/ 12 мая 2010

Используйте <>. IIRC, != будет работать в MySQL, хотя

...