代码之家  ›  专栏  ›  技术社区  ›  AndyD273

视图中的前N名还是Crystal Reports?

  •  1
  • AndyD273  · 技术社区  · 14 年前

    我想知道是否可以使用视图从表中获取前5行。 我发现Crystal reports似乎没有任何内置功能来实现这一点,否则我会在那里实现。

    Select * from qryTranHistory ,它返回前5项,但如果我尝试选择特定类型 Select * from qryTranHistory Where tID = 45

    有可能这样做吗?
    是否可以在Crystal Reports的子报表中完成?

    7 回复  |  直到 14 年前
        1
  •  2
  •   Josaph    14 年前

    
    ALTER PROCEDURE dbo.Get_TOP5
        (
        @tID INT = NULL
        )
    AS
    IF @tID IS NULL
        BEGIN
            SELECT TOP 5            
                FIELD1,
                FIELD2
    
            FROM qryTranHistory 
        END
    ELSE
        BEGIN
            SELECT          
                FIELD1,
                FIELD2
    
            FROM qryTranHistory 
    
            WHERE tID =@tID
        END
        2
  •  5
  •   John Price    12 年前

    把一份报告限制在前5条记录是很容易的。在菜单中,只需选择

    在公式中,输入“RecordNumber<=5“你就完了。

        3
  •  2
  •   sanrns    7 年前

    一个简单的设置可以将记录限制在前5!!如果您使用的是.NET1.1(在更高的框架中也有类似的选项安排!),那么这里就是了。

    • 右键单击报告布局>报告>顶级N/分类专家组>选择 前N N

    干杯!

        4
  •  0
  •   Tom H    14 年前

    你能把顶部放在SELECT语句中而不是视图中吗?

    SELECT TOP 5
        col1,
        col2,
        ...
    FROM
        qryTranHistory
    WHERE
        tid = 45
    
        5
  •  0
  •   JonH    14 年前

    如果表的行数超过5行,我希望此查询:

    SELECT * FROM qryTranHistory
    

    返回超过5行,因为您从未提到前5行。

    仔细阅读 TOP

    SELECT TOP 10 Recs FROM Records WHERE...
    

    顺便说一下,您不想在report/a表单接口中执行此操作,而是希望在db层中执行此操作。

        6
  •  0
  •   user359040 user359040    14 年前

    你呢 可以 在Crystal Reports中执行Top N处理,但这有点模糊—您必须使用group sort expert(为了使用它,您需要在组中插入组和摘要字段)

    在可能的情况下,在查询中执行前N个处理应该更有效。

        7
  •  0
  •   Sun    11 年前