sql 分类汇总查询,请教

--------------------------------------待验收入库单
create table T_CW_WareHousing_Entry(
BOSID NUMBER not null, --
wareId VARCHAR2(50), --入库单编号
stockTime VARCHAR2(50), --采购时间
empid VARCHAR2(50), --登记人
cw_Addr VARCHAR2(50), --库存地址
storeReq VARCHAR2(50), --采购申单请编号
supplierId VARCHAR2(50),--供应商关联Id
remark VARCHAR2(1000), --备注
author VARCHAR2(50), --登记人
titleid VARCHAR2(50), --岗位id
orgid VARCHAR2(50), --组织id
bosdate DATE, --实例创建日期
bostime TIMESTAMP(6), --实例创建时间
wareState VARCHAR2(50), --单据状态
storeDate VARCHAR2(50), --入库时间
constraint PK_T_CW_WareHousing_Entry primary key (BOSID)
);

-------------------------------------待验收入库明细表
create table T_CW_Warehousing_Detail(
BOSID NUMBER not null,
suppliesId VARCHAR2(50), --用品信息关联Id
suppliesPrice VARCHAR2(50), --用品价格
articlesCount VARCHAR2(50), --采购数量
empid VARCHAR2(50), --登记人
author VARCHAR2(50), --登记人
titleid VARCHAR2(50), --岗位id
orgid VARCHAR2(50), --组织id
bosdate DATE, --实例创建日期
bostime TIMESTAMP(6), --实例创建时间
wareId VARCHAR2(50), --待验收入库单关联Id
constraint PK_T_CW_Warehousing_Detail primary key (BOSID)
);

--------------------------------------用品信息表
create table T_CW_Supplies_Info(
BOSID NUMBER not null,
suppliesName VARCHAR2(50), --用品名称
cw_Category VARCHAR2(50), --用品类别
cw_Addr VARCHAR2(50), --库存地址
suppliesUnit VARCHAR2(50), --用品单位
suppliesPrice VARCHAR2(50), --用品价格
suppliesStandard VARCHAR2(50), --规格
SupplierId VARCHAR2(50), --供应商关联Id
empid VARCHAR2(50), --登记人
author VARCHAR2(50), --登记人
titleid VARCHAR2(50), --岗位id
orgid VARCHAR2(50), --组织id
bosdate DATE, --实例创建日期
bostime TIMESTAMP(6), --实例创建时间
count VARCHAR2(50), --库存数
constraint PK_T_CW_Supplies_Info primary key (BOSID)
);

我想要得到这样的结果
用品类别 用品名称 采购数量 采购金额
笔类 150 125
签字笔 100 100
铅笔 50 25
打印纸 500 500
A4纸 500 500
合计 650 625

一个sql无法实现。你觉得你的结果是一个表吗?sql查询出来还要是一个表(视图)才行啊。你看看你要的结果。

只能查找出类似
笔类 签字笔 100 100
笔类 铅笔 50 25
打印纸 A4纸 500 500

这样的结果而已,其他只能自己处理了。

ps。如果你说的一条语句能查找出来,就不会有那么多报表工具了

分类汇总一般用compute吧

我觉得无法一个sql实现, 你还是将子分类汇总和总的汇总的逻辑放代码里面把.

个人感觉,通过一条Sql可以实现.只是复杂程度的问题.想简单的话,可以先建一张视图,然后从视图中取数.
对你的结果,可以使用三条SELECT语句实现,然后把三条语句用UNION ALL连接起来,最终排序,可以得出你要的结果.时间关系,没有贴出代码.自己可以试一下.

朋友,问题要自动关闭啦,结分哦