做报表(ireport)时候要进行分组汇总,但是报表的汇总智能在 group footer 里面,写在group header里面没有值,于是打算从数据源里面做处理,实践出来有两种方式:
第一种:
储位 | 物料 | 数量 |
001 | 100 | |
A | 10 | |
B | 90 | |
002 | 30 | |
C | 29 | |
A | 1 |
上面,通过两个查询union 和 order by 可以获得在每个明细之前或者之后,增加一个汇总行的结构,sql如下:
select A.BILLID, SUM_QTY, ONL_NOTICE_QTY from ((SELECT BILLID, ONL_NOTICE_QTY FROM WM_OUTBOUND_NOTICE_LINE WHERE BILLID = 14339) A LEFT JOIN (SELECT BILLID, SUM(ONL_NOTICE_QTY) SUM_QTY FROM WM_OUTBOUND_NOTICE_LINE WHERE BILLID = 14339 GROUP BY BILLID) B ON A.BILLID = B.BILLID) ORDER BY BILLID
第二种:
A | 1 | 6 |
2 | 6 | |
3 | 6 | |
B | 7 | 9 |
2 | 9 | |
C | 5 | 5 |
也就是,增加一列来记录汇总数量,用join 实现,如果需要多个分组,就要多次join:
select A.BILLID, SUM_QTY, ONL_NOTICE_QTY from ((SELECT BILLID, ONL_NOTICE_QTY FROM WM_OUTBOUND_NOTICE_LINE) A LEFT JOIN (SELECT BILLID, SUM(ONL_NOTICE_QTY) SUM_QTY FROM WM_OUTBOUND_NOTICE_LINE GROUP BY BILLID) B ON A.BILLID = B.BILLID left join () c ) ORDER BY BILLID
项目中的实际sql是:
SELECT dtl.source_shop, dtl.wave_no, dtl.owner_name, dtl.carrier_name, dtl.material_wave_type_count, dtl.material_wave_sum_count, dtl.storeroom_name, dtl.storearea_name, dtl.location_code, dtl.location_name, dtl.material_code, dtl.material_name, dtl.material_barcode, dtl.material_spec, dtl.wave_order, dtl.material_loc_qty, grp_loc_mat.sum_loc_mat_qty, grp_loc.sum_loc_qty, dtl.order_no, dtl.express_no from (select onh.onh_source_shop source_shop, l.billdtlid, h.SH_WAVE_NO wave_no, 'xxx' owner_name, 'xxx' carrier_name, 'xxx' material_wave_type_count, 'xxx' material_wave_sum_count, 'xxx' storeroom_name, 'xxx' storearea_name, loc.code location_code, loc.name location_name, m.code material_code, m.name material_name, 'xxx' material_barcode, m.mat_spec material_spec, h.sh_wave_order wave_order, l.SL_SHIP_QTY material_loc_qty, onh.onh_external_order_no order_no, onh.onh_consign_no express_no, l.sl_location_id, l.sl_material_id from wm_ship_line l left join wm_ship_header h ON l.billid = h.billid left join wm_outbound_notice_header onh ON h.sh_notice_header_id = onh.billid left join cp_owner c ON c.id = h.sh_carrier_id left join cp_location loc ON loc.id = l.sl_location_id left join cp_material m ON m.id = l.sl_material_id where h.sh_notice_header_id in (1)) dtl left join (select l.sl_location_id, sum(l.SL_SHIP_QTY) sum_loc_qty from wm_ship_line l left join wm_ship_header h ON l.billid = h.billid where h.sh_notice_header_id in (1) group by l.sl_location_id) grp_loc ON dtl.sl_location_id = grp_loc.sl_location_id left join (select l.sl_location_id, l.sl_material_id, sum(l.SL_SHIP_QTY) sum_loc_mat_qty from wm_ship_line l left join wm_ship_header h ON l.billid = h.billid where h.sh_notice_header_id in (1) group by l.sl_location_id , l.sl_material_id) grp_loc_mat ON dtl.sl_location_id = grp_loc_mat.sl_location_id and dtl.sl_material_id = grp_loc_mat.sl_material_id order by dtl.location_code , dtl.material_code , dtl.wave_order
end。
相关推荐
亲测可用,报表统计查询,根据条件统计每一天明细,一周或者一个月的汇总
小编对工作中遇到的用数据库语句进行分类汇总的查询信息的信息。压缩包中附件相关的数据库和 sql脚本。 详细的思路过程见博客:https://blog.csdn.net/aiming66/article/details/80717802
20191108_13001-13003 贷款科目与总账汇总明细(核心系统).sql
1.库存盘点收发存汇总表业务逻辑。 2.使用mssql数据库语句实现。 3.实时查询可以得出查询时间段的材料编码对应的期初、入库数、出库数、期末库存。 4.一条sql语句即可实现。
sql由入库单与出库单统计库存 入库表 id 类别 品名 单位 数量 ----------- ---------- ---------- ---------- ----------- 1 办公 打印机 台 2 2 办公 打印机 台 1 3 办公 打印纸 盒 2 4 其它 电话 台 2 出库表 ...
│ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql │ │ 3.7.4 text与image字段转换处理示例.sql │ │ 3.7.5 ntext字段的REPLACE处理示例.sql │ │ │ └─其他 │ varbinary转换成字符串.sql │ 关键字搜索...
3.6.2 字符串在编号查询中的应用示例及常见问题.sql │ │ 3.6.3 动态参数的存储过程示例.sql │ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql │ │ 3.7.3 text与ntext字段的复制和合并...
库存管理:(包括查询、库存明细、库存汇总、分仓汇总、库存报警)可以对当前库存进行查询,也可以对滞销、畅销货品的查询。查询时可以根据多种条件组合查询货品记录,可通过EXCEL表导出数据,并可以打印出历史数据...
方便做SQL视图或开发使用,运行K3CloudDataDictionaryexe.
本书全面系统地介绍了SQL Server开发和管理的应用技术,涉及安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原、用户...
1、根据国务院办公厅关于2023年部分节假日安排的通知汇总的股票证券交易日和非交易日新增insert sql数据; 2、只需要修改对应的表名、字段名即可将交易日、非交易的数据导入到数据库; 3、有汇总的交易日明细数据...
现金银行汇总表,这个是在Delphi和SQLSERVER的环境下来模拟的,主要是练习Delphi与SQLSERVER数据库的查询操作,这个查询要稍复杂一些,可参考以下的语句: SQLStr := 'Select a.系统日期,a.摘要,a.单号,a.增加金额...
函数特有的灵活性,使其成为报表汇总、财务分析、财务预算、综合财报及自定义活表最趁手的工具!提供数据,Excel处理风格,两者的无缝衔接使您可以回到熟悉的Excel,轻松完成各式各样的复杂财报及图文并茂的灵活报表...
功能描述:PO待交明细、出入库统计表、待领料清单、请购中品号无单价的品号清单、请购单中无品号采购信息的品号清单 、物料采购分析表、物料呆滞料计算、应付-已付汇总表(已付款未扣除)、应付-已付汇总表(已付已...
3、 提供了零售统计,采购日汇总,采购月汇总,采购类别汇总,采购品牌汇总,采购供应商汇总,采购明细汇总,库存成本查询,出入库明细出入库汇总,出入库月汇总,强大报表功能。 4、 支持强大终端POS对接功能。 5、 支持...
3、 提供了零售统计,采购日汇总,采购月汇总,采购类别汇总,采购品牌汇总,采购供应商汇总,采购明细汇总,库存成本查询,出入库明细出入库汇总,出入库月汇总,强大报表功能。 4、 支持强大终端POS对接功能。 5、 支持...
1、根据国务院办公厅关于2024年部分节假日安排的通知汇总的股票证券交易日和非交易日新增insert sql数据; 2、只需要修改对应的表名、字段名即可将交易日、非交易的数据导入到数据库; 3、有汇总的交易日明细数据...
3、 提供了零售统计,采购日汇总,采购月汇总,采购类别汇总,采购品牌汇总,采购供应商汇总,采购明细汇总,库存成本查询,出入库明细出入库汇总,出入库月汇总,强大报表功能。 4、 支持强大终端POS对接功能。 5、 支持...
主要功能包括进采购、采购退货、销售、销售退货、物料领用、领料退回、库存盘点、仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,客户供货汇总、明细报表,部门领用汇总、...
6.4.1 库存明细账查询 193 6.4.2 同期及上期数据对比 197 6.4.3 动态分组统计 199 6.4.4 销售排行榜 200 第 7 章 分页处理 205 7.1 应用程序中的分页处理 205 7.2 数据库中的分页处理 207 7.2.1 ...