`
alanland
  • 浏览: 633163 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sql同时查询出明细和汇总

 
阅读更多

做报表(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联合统计查询

    亲测可用,报表统计查询,根据条件统计每一天明细,一周或者一个月的汇总

    如何在sqlserver中进行分类汇总-附件sql server 2005实例数据库和脚本

    小编对工作中遇到的用数据库语句进行分类汇总的查询信息的信息。压缩包中附件相关的数据库和 sql脚本。 详细的思路过程见博客:https://blog.csdn.net/aiming66/article/details/80717802

    20191108_13001-13003 贷款科目与总账汇总明细(核心系统).sql

    20191108_13001-13003 贷款科目与总账汇总明细(核心系统).sql

    库存收发存报表汇总统计数据库语句实现

    1.库存盘点收发存汇总表业务逻辑。 2.使用mssql数据库语句实现。 3.实时查询可以得出查询时间段的材料编码对应的期初、入库数、出库数、期末库存。 4.一条sql语句即可实现。

    sql由入库单与出库单统计库存

    sql由入库单与出库单统计库存 入库表 id 类别 品名 单位 数量 ----------- ---------- ---------- ---------- ----------- 1 办公 打印机 台 2 2 办公 打印机 台 1 3 办公 打印纸 盒 2 4 其它 电话 台 2 出库表 ...

    经典SQL脚本大全

    │ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql │ │ 3.7.4 text与image字段转换处理示例.sql │ │ 3.7.5 ntext字段的REPLACE处理示例.sql │ │ │ └─其他 │ varbinary转换成字符串.sql │ 关键字搜索...

    Sqlserver2000经典脚本

    3.6.2 字符串在编号查询中的应用示例及常见问题.sql │ │ 3.6.3 动态参数的存储过程示例.sql │ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql │ │ 3.7.3 text与ntext字段的复制和合并...

    里诺仓库管理软件(SQL网络版)601破解版

    库存管理:(包括查询、库存明细、库存汇总、分仓汇总、库存报警)可以对当前库存进行查询,也可以对滞销、畅销货品的查询。查询时可以根据多种条件组合查询货品记录,可通过EXCEL表导出数据,并可以打印出历史数据...

    金蝶云星空字典表 SQL 数据库表 开发工具

    方便做SQL视图或开发使用,运行K3CloudDataDictionaryexe.

    SQL SERVER 2000开发与管理应用实例

    本书全面系统地介绍了SQL Server开发和管理的应用技术,涉及安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原、用户...

    2023年沪深股票证券交易日INSERT SQL及excel数据等文件

    1、根据国务院办公厅关于2023年部分节假日安排的通知汇总的股票证券交易日和非交易日新增insert sql数据; 2、只需要修改对应的表名、字段名即可将交易日、非交易的数据导入到数据库; 3、有汇总的交易日明细数据...

    Delphi 数据库查询模拟现金银行汇总表.rar

    现金银行汇总表,这个是在Delphi和SQLSERVER的环境下来模拟的,主要是练习Delphi与SQLSERVER数据库的查询操作,这个查询要稍复杂一些,可参考以下的语句:  SQLStr := 'Select a.系统日期,a.摘要,a.单号,a.增加金额...

    会计益友:excle 用友.金蝶帐套取数、报表、明细账

    函数特有的灵活性,使其成为报表汇总、财务分析、财务预算、综合财报及自定义活表最趁手的工具!提供数据,Excel处理风格,两者的无缝衔接使您可以回到熟悉的Excel,轻松完成各式各样的复杂财报及图文并茂的灵活报表...

    E10查用SQL语句集合E10查用SQL语句集合

    功能描述:PO待交明细、出入库统计表、待领料清单、请购中品号无单价的品号清单、请购单中无品号采购信息的品号清单 、物料采购分析表、物料呆滞料计算、应付-已付汇总表(已付款未扣除)、应付-已付汇总表(已付已...

    多店进销存管理系统源码本源码亲测可用 开发环境为Visual Studio 2010,数据库为SQL2008R2,使用.net

    3、 提供了零售统计,采购日汇总,采购月汇总,采购类别汇总,采购品牌汇总,采购供应商汇总,采购明细汇总,库存成本查询,出入库明细出入库汇总,出入库月汇总,强大报表功能。 4、 支持强大终端POS对接功能。 5、 支持...

    多店进销存管理系统源码

    3、 提供了零售统计,采购日汇总,采购月汇总,采购类别汇总,采购品牌汇总,采购供应商汇总,采购明细汇总,库存成本查询,出入库明细出入库汇总,出入库月汇总,强大报表功能。 4、 支持强大终端POS对接功能。 5、 支持...

    2024年沪深股票证券交易日INSERT SQL及excel数据等文件

    1、根据国务院办公厅关于2024年部分节假日安排的通知汇总的股票证券交易日和非交易日新增insert sql数据; 2、只需要修改对应的表名、字段名即可将交易日、非交易的数据导入到数据库; 3、有汇总的交易日明细数据...

    asp.net 商业版连锁店进销存管理系统源码 多店进销存系统

    3、 提供了零售统计,采购日汇总,采购月汇总,采购类别汇总,采购品牌汇总,采购供应商汇总,采购明细汇总,库存成本查询,出入库明细出入库汇总,出入库月汇总,强大报表功能。 4、 支持强大终端POS对接功能。 5、 支持...

    美萍库存管理系统SQL网络版

    主要功能包括进采购、采购退货、销售、销售退货、物料领用、领料退回、库存盘点、仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,客户供货汇总、明细报表,部门领用汇总、...

    sqlserver2000基础(高手也有用)

    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 ...

Global site tag (gtag.js) - Google Analytics