MS Access查询返回的限制,但计算查询或表中的所有行

时间:2014-09-03 12:14:27

标签: ms-access

我在MS Access数据库中有一个查询,返回大约100 - 200行,这是完美的,它应该是它应该做的。但是,现在最终用户希望看到最后+/- 15行的摘要以及未显示的行的总数。

我发现Access有一个功能最高值,但是如果我针对这个特定情况执行此操作,它只计算正在显示的行的总数。我也尝试基本上复制查询并限制其中一个,这部分工作。它返回正确的行,但似乎我只能用一个查询的值来计算。

有什么方法可以完成我正在尝试做的事情,或者我应该告诉最终用户不要打印报告的前x页数量?

亲切的问候,

NIEK

编辑: 目前我有以下查询:

SELECT [Toets Korrelverdeling (Algemeen) 4/16].DagrapportCivielId, [Toets Korrelverdeling (Algemeen) 4/16].PartijID, [Toets Korrelverdeling (Algemeen) 4/16].PartijJaar, [Toets Korrelverdeling (Algemeen) 4/16].DatumProef, [Toets Korrelverdeling (Algemeen) 4/16].Partijnummer, [Toets Korrelverdeling (Algemeen) 4/16].Werknummer, [Toets Korrelverdeling (Algemeen) 4/16].BrekerID, [Toets Korrelverdeling (Algemeen) 4/16].Projectdag, [Toets Korrelverdeling (Algemeen) 4/16].ton, [Toets Korrelverdeling (Algemeen) 4/16].ProductID, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[Conclusie Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[Voldoet algemeen ja/nee], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[Conclusie Verklaard], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[Voldoet Verklaard ja/nee], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste7, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse7 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse7, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste11, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse11 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse11, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste12, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse12 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse12, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste16, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse16 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse16, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste18, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse18 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse18, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste25, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse25 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse25, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste45, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse45 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse45, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste77, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse77 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse77, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].Claatste105, [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].[ToetsLaatstse105 Algemeen], [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].ToetsLaatstse105 FROM [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting] LEFT JOIN [Toets Korrelverdeling (Algemeen) 4/16] ON [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting].DagrapportCivielId = [Toets Korrelverdeling (Algemeen) 4/16].DagrapportCivielId LIMIT 15;

但这不会让我计算出例如ToetsLaatstse7 Algemeen的总和。

3 个答案:

答案 0 :(得分:0)

在您的SQL查询中,您可以使用

SELECT SQL_CALC_FOUND_ROWS .... LIMIT 15;

查询将返回15行结果,还有一行数据包含您应该没有LIMIT子句的结果总数。

更多信息:http://dev.mysql.com/doc/refman/5.0/en/select.html

答案 1 :(得分:0)

您可以在父查询中添加另一个选择计数(*)查询以获取总行数。

试试这个:

SELECT 
    TOP 25 
    TK_A.DagrapportCivielId,
    TK_A.PartijID,
    TK_S.[ToetsLaatstse105 Algemeen],
    TK_S.ToetsLaatstse105,
    (SELECT count(*) FROM [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting] as tb1
        LEFT JOIN [Toets Korrelverdeling (Algemeen) 4/16] as Tb2 ON Tb1.DagrapportCivielId = Tb2.DagrapportCivielId) AS total_Rows

FROM
    [Toets Korrelverdeling (Algemeen) 4/16 Samenvatting] as TK_S  
        LEFT JOIN
    [Toets Korrelverdeling (Algemeen) 4/16] as TK_A ON TK_S.DagrapportCivielId = TK_A.DagrapportCivielId;

答案 2 :(得分:0)

如果您可以创建一个新的SQL语句来返回您要查找的数据,例如(Count(PartijID),Sum(PartijJaar),或者),并将这些新字段命名为与原始查询相同(选择Count(PartijID)作为PartijID等),然后将UNION指向您的其他查询,将其命名为该记录显示在顶部 - 然后您对整个表的摘要始终是返回的第一条记录。