MS Access 2007 SQL查询:SELECT语句中的嵌套(COUNT,GROUP BY)

时间:2018-03-14 21:08:56

标签: sql ms-access

我有一个跟踪日志,我用它来确定提案和承销商可用性的紧迫性。到目前为止,我已经做了两个单独的查询:一个显示提案ORDER BY他们是否加快了他们是否应该到期,另一个显示每个承保人的COUNT OF提案。

我的目标是向ProposalUrgency查询添加一个select语句,该查询显示分配给每行中的Underwriter的proposalID的计数。这提供了投标何时到期的垂直视图,以及所分配的承销商是否具有在截止日期前完成的带宽的水平视图。

到目前为止,我的研究并没有找到这类问题的答案,尽管可能是因为它与这种情况无关,所以我不理解答案。

CREATE TABLE Proposals (
  ProposalID int PRIMARY KEY,
  ReceivedDate date(),
  Client varchar(255),
  Underwriter varchar(255),
  Expedite boolean(),
  DueDate date(),
  Completed date(),
)

' ProposalUrgency'查询:

SELECT Expedite
  , DueDate
  , Underwriter
  , ReceivedDate
  , Client
FROM Proposals
WHERE Completed IS NULL
ORDER BY Expedite, DueDate, RecievedDate;

' UnderwriterWorkload'查询:

SELECT Underwriter
  , Count('proposalID') AS OpenGroups
FROM Proposals
WHERE Completed IS NULL
GROUP BY Underwriter
ORDER BY Count('GroupName');

1 个答案:

答案 0 :(得分:0)

Subquery在Access中起作用(至少是Access 2013),我知道它是一个单一的查询来统治它们所有"方法,但确实有效......

    SELECT P.Expedite, P.DueDate, P.Underwriter, P.ReceivedDate, P.Client, 
        (SELECT Count(1) 
         FROM Proposals Kt 
         WHERE P.Underwriter = Kt.Underwriter AND Kt.Completed IS NULL 
         GROUP BY Kt.Underwriter) As Kt
    FROM Proposals P
    WHERE P.Completed IS NULL
    ORDER BY Expedite, DueDate, ReceivedDate