FastReport如何设置分组求和?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastReport如何设置分组求和?相关的知识,希望对你有一定的参考价值。

一个订单需要按照库房进行分组分页打印,但是汇总数据从第一组到第N组是累加的,比如第一组10件,第2组10件,汇总数据我想要显示的是10件,但实际显示的是20件(第1组+第2组),求大神指点

题主,你可以用sql语句试试看,比如说:select 产品,数量 from table where .....
uinon
select "合计" as 产品,sum(数量) as 数量 from table where
不过个人觉得还是蛮麻烦的,不及finereport那样,只要直接把数据字段拖进单元格进行汇总就可以了,还可以设置汇总方式。
参考技术A http://www.cnblogs.com/zhanyi/p/5670507.html

如何对视图中的列进行求和/分组/排序

【中文标题】如何对视图中的列进行求和/分组/排序【英文标题】:How to sum/group/sort columns in a view 【发布时间】:2021-02-28 11:04:31 【问题描述】:

我有两个表,Author_Dim 和 Author_Fact 如下:

CREATE TABLE Author_Dim
(
TitleAuthor_ID INT IDENTITY(1,1),
Title_ID CHAR(20),
Title VARCHAR(80),
Type_Title CHAR(12),
Author_ID CHAR(20),
Last_Name   VARCHAR(40),
First_Name VARCHAR(20),
Contract_Author BIT,
Author_Order INT,
PRIMARY KEY (TitleAuthor_ID),
);
GO

CREATE TABLE Author_Fact
(
Fact_ID INT IDENTITY(1,1),
TitleAuthor_ID INT,
Author_ID CHAR (20),
Price DEC(10,2),
YTD_Sales INT,
Advance DEC(10,2),
Royalty INT,
Royalty_Perc INT,
Total_Sales DEC(10,2),
Total_Advance DEC(10,2),
Total_Royalty DEC(10,2)
PRIMARY KEY(Fact_ID),
FOREIGN KEY (TitleAuthor_ID) REFERENCES Author_Dim(TitleAuthor_ID),
);
go

我希望创建一个视图,给出每位作者支付的总版税,然后将其与支付最高的作者排序,即它对 Total_Royalty 列求和,按 Author_ID 对其进行分组,然后按降序对 Total_Royalty 进行排序。

我有以下内容,但我不确定如何将 sum/group/sort 函数添加到视图中:

Create view [Total_Royalty_View] As (
Select Author_Dim.Author_ID, Author_Dim.Last_Name, Author_Dim.First_Name, Author_Fact.Total_Royalty
From Author_Dim
Join Author_Fact
On Author_Fact.TitleAuthor_ID = Author_Dim.TitleAuthor_ID
);
Go

【问题讨论】:

你检查this问题了吗?如果您只是从需要在选择查询期间指定的表中进行选择,则忽略 Order by。 【参考方案1】:

在 SQL 中,它是所有表。您从表中选择,结果又是一个表(由列和行组成)。您可以存储一个选择语句以供重复使用,这称为视图。您也可以编写一个临时视图(from 子句中的子查询)。他们的结果又是表格。

表格被认为是无序的数据集。

因此,您不能编写生成有序行集的视图。

这是视图(无序):

create view total_royalty_view as 
select
  a.author_id,
  a.last_name,
  a.first_name,
  coalesce(r.sum_total_royalty, 0) as total_royalty
from author_dim a
left join
(
  select titleauthor_id, sum(total_royalty) as sum_total_royalty
  from author_fact
  group by titleauthor_id
) r on r.titleauthor_id = a.titleauthor_id;

这里是如何从中选择:

select *
from total_royalty_view
order by total_royalty desc;

【讨论】:

以上是关于FastReport如何设置分组求和?的主要内容,如果未能解决你的问题,请参考以下文章

使用FastReport设计分组汇总及合计报表(图文)

fastreport 3 中如何设计分组统计报表?

FastReport用Groupheader分组后如何计算,每个组的页数?

在FastReport中如何为特定的数据行设置显示格式?

fastreport 3.0 怎样实现 多栏报表

FastReport 数据区二级显示