[英]ms-access - grouping select statement
這是查詢:
SELECT [Lab Occurrence Form].[1 0 Preanalytical (Before Testing)],Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) AS [CountOf1 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
UNION SELECT [Lab Occurrence Form].[2 0 Analytical (Testing Phase)], Count([Lab Occurrence Form].[2 0 Analytical (Testing Phase)]) AS [CountOf2 0 Analytical (Testing Phase)]
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].[2 0 Analytical (Testing Phase)]
HAVING Count([Lab Occurrence Form].[2 0 Analytical (Testing Phase)])<>0
union
SELECT [Lab Occurrence Form].[3 0 Postanalytical ( After Testing)], Count([Lab Occurrence Form].[3 0 Postanalytical ( After Testing)]) AS [CountOf3 0 Postanalytical ( After 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].[3 0 Postanalytical ( After Testing)]
HAVING Count([Lab Occurrence Form].[3 0 Postanalytical ( After Testing)])<>0
UNION SELECT [Lab Occurrence Form].[4 0 Other], Count([Lab Occurrence Form].[4 0 Other]) AS [CountOf4 0 Other]
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].[4 0 Other]
HAVING Count([Lab Occurrence Form].[4 0 Other])<>0
ORDER BY 1, 2;
它會生成如下所示的內容:
1 0 Preanalytical (Before Testing) CountOf1 0 Preanalytical (Before Testing)
1.11 Other-reject per practice 1
1.11 Other-req form marked Validity Only 1
1.11 Other-req form only, no specimen 3
1.11 Other-spec sent by mistake 1
1.11 Other-Test Req marked validity only 1
1.11 Other-validity only 3
1.11 Other-validity only-TP updated 1
1.3 QNS-Quantity Not Sufficient 103
1.4 Tests Missed/ Wrong Test Ordered 1
1.4 Tests Missed/ Wrong Test Ordered & 1.11 Other-data entry-dup tests 2
1.4 Tests Missed/Wrong Test Ordered 3
1.5 Patient Info. entered Incorrectly 1
1.6 Test Requisition Missing 22
1.6 Test Requisition Missing & 1.7 Specimen Lost 2
1.6 Test Requisition Missing-CSRM 1
1.8 Specimen not handled/processed correctly & 1.10 Operator Error(?) 1
1.8 Specimen not handled/processed correctly,1.10 Operator Error & 1.11 Other-no THC INSD recovery 1
1.9 QNS- Specimen Spilled in transit 88
2.1 Delay in Testing/resulting 1
2.1 Delay in Testing/resulting & 2.22 Instrument Problem 4
我想將結果分組並按數字求和
而不是一堆1.11個其他,我想對它們進行總結並得到:
1.11 11
1.3 103
1.4 4
所以我想我需要做的是選擇第一列的前4個字符,並按第一列對其進行分組,然后對第二列進行求和? 請幫我這個選擇聲明
使用Val()
?val("1.11 Other-validity only-TP updated")
1.11
也適用於查詢。
也許:
SELECT left(TestType, 4), COUNT(*) FROM
(SELECT [Lab Occurrence Form].[1 0 Preanalytical Before Testing)] As TestType,
Count([Lab Occurrence Form].[1 0 Preanalytical (Before Testing)]) AS [CountOf1 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
UNION
SELECT [Lab Occurrence Form].[2 0 Analytical (Testing Phase)],
Count([Lab Occurrence Form].[2 0 Analytical (Testing Phase)]) AS
[CountOf2 0 Analytical (Testing Phase)]
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].[2 0 Analytical (Testing Phase)]
HAVING Count([Lab Occurrence Form].[2 0 Analytical (Testing Phase)])<>0
union
SELECT [Lab Occurrence Form].[3 0 Postanalytical ( After Testing)],
Count([Lab Occurrence Form].[3 0 Postanalytical ( After Testing)]) AS
[CountOf3 0 Postanalytical ( After 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].[3 0 Postanalytical ( After Testing)]
HAVING Count([Lab Occurrence Form].[3 0 Postanalytical ( After Testing)])<>0
UNION
SELECT [Lab Occurrence Form].[4 0 Other], Count([Lab Occurrence Form].[4 0 Other])
AS [CountOf4 0 Other]
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].[4 0 Other]
HAVING Count([Lab Occurrence Form].[4 0 Other])<>0) A
GROUP BY left(TestType, 4)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.