доступ: заявление IIF и COUNT - PullRequest
0 голосов
/ 30 июня 2010

вот мой код, который работает благодаря Джиму Б:

SELECT IIf([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] Like '*1.11 Other*','1.11 Other',[Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) AS [Occurrence Code], Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)])
FROM [Lab Occurrence Form]
WHERE ((([Lab Occurrence Form].[Occurrence Date]) Between [Forms]![Meeting_Reasons_Frequency]![Text4] And [Forms]![Meeting_Reasons_Frequency]![Text2]))
GROUP BY [Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]
HAVING ((Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]))<>0)
ORDER BY Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) DESC;

возвращает:

1.1 Specimen Mislabeled 159
1.3 QNS-Quantity Not Sufficient 84
1.9 QNS- Specimen Spilled in transit    72
1.6 Test Requisition Missing    17
1.11 Other  3
1.11 Other  3
1.1 Specimen Mislabeled-new ID # given  2
1.11 Other  2
1.11 Other  2
1.1 Specimen Mislabeled & 1.6 Test Requisition Missing  1
1.11 Other  1
1.11 Other  1
1.11 Other  1
1.11 Other  1
1.11 Other  1
? Nothing in comments portion of QuikLab    1
1.11 Other  1
1.11 Other  1
1.4 Tests Missed/ Wrong Test Ordered    1
1.4 Tests Missed/Wrong Test Ordered 1
1.6 Test Requisition Missing & 1.7 Specimen Lost    1
1.8 Specimen not handled/processed correctly & 1.10 Operator Error(?)   1
1.11 Other  1
1.11 Other  1

это именно то, что мне нужно ОДНАКО, есть одна небольшая вещь. Мне нужно, чтобы он считал «1,11 Другое»

как мне это сделать? Другими словами, это вывод, который мне нужен:

? Nothing in comments portion of QuikLab    1
1.1 Specimen Mislabeled 159
1.1 Specimen Mislabeled & 1.6 Test Requisition Missing  1
1.1 Specimen Mislabeled-new ID # given  2
1.11 Other  19
1.3 QNS-Quantity Not Sufficient 84
1.4 Tests Missed/ Wrong Test Ordered    1
1.4 Tests Missed/Wrong Test Ordered 1
1.6 Test Requisition Missing    17
1.6 Test Requisition Missing & 1.7 Specimen Lost    1
1.8 Specimen not handled/processed correctly & 1.10 Operator Error(?)   1
1.9 QNS- Specimen Spilled in transit    72

как вы можете видеть, есть только один случай 1.11 Other и общее число 19

JIM B предлагает следующее:

Use your IIF statement all the way through your group by and having clauses – Jim B

но я не понимаю, как это реализовать. пожалуйста помогите!

Ответы [ 3 ]

1 голос
/ 30 июня 2010

Больше, чем парень на сервере sql, так что я не уверен, что вы можете это сделать, но вы пробовали:

SELECT IIf([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] Like '*1.11 Other*','1.11 Other',[Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) AS [Occurrence Code], Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)])
FROM [Lab Occurrence Form]
WHERE ((([Lab Occurrence Form].[Occurrence Date]) Between [Forms]![Meeting_Reasons_Frequency]![Text4] And [Forms]![Meeting_Reasons_Frequency]![Text2]))
GROUP BY IIf([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] Like '*1.11 Other*','1.11 Other',[Lab Occurrence Form].[1 0 Preanalytical (Before Testing)])
HAVING ((Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]))<>0)
ORDER BY Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) DESC;
1 голос
/ 30 июня 2010

Может как то так?

SELECT IIf([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] Like '*1.11 Other*','1.11 Other',[Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) AS [Occurrence Code], Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)])
FROM [Lab Occurrence Form]
WHERE ((([Lab Occurrence Form].[Occurrence Date]) Between [Forms]![Meeting_Reasons_Frequency]![Text4] And [Forms]![Meeting_Reasons_Frequency]![Text2]))
GROUP BY IIf([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] Like '*1.11 Other*','1.11 Other',[Lab Occurrence Form].[1 0 Preanalytical (Before Testing)])
HAVING ((Count(IIf([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] Like '*1.11 Other*','1.11 Other',[Lab Occurrence Form].[1 0 Preanalytical (Before Testing)])))<>0)
ORDER BY Count(IIf([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)] Like '*1.11 Other*','1.11 Other',[Lab Occurrence Form].[1 0 Preanalytical (Before Testing)])) DESC;
1 голос
/ 30 июня 2010

Решение, которое вы использовали в операторе столбца, также должно содержаться в функции count.Потому что вы хотите, чтобы он рассчитывал на основе измененных данных столбца, а не исходных данных столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...