簡體   English   中英

ms-access-分組選擇語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM