sql分类查询并汇总的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 21:13:37
表:cpxxtb 数据库:dcxtdb
cpxxtb 字段名:订单编号,供应商名称,姓名,菜谱名称,菜谱类别,菜谱单价,日期,数量
如何在用sql语句实现分类汇总
比如:
乡里人家,小毛,鱼香肉丝,盖浇饭,8元,1份
乡里人家,小红,鱼香肉丝,盖浇饭,8元,1份
乡里人家,小毛,红烧鱼块,套餐饭,18元,1份
好滋味 ,小毛,鱼香肉丝,盖浇饭,8元,1份
想在datagrid控件实现:
乡里人家,小毛,鱼香肉丝,盖浇饭,16元,2份
乡里人家,小毛,红烧鱼块,套餐饭,18元,1份
供应商:乡里人家 合计:34元,总份数:3份
好滋味 ,小毛,鱼香肉丝,盖浇饭,8元,1份
供应商:好滋味 合计:8元,总份数:1份
总合计:42元 ,份数合计:4份
请教高手如何用sql语句实现,
vb语言
select 供应商名称,sum(菜谱单价),sum(数量) from cpxxtb group by 供应商名称 这个只能查询到汇总数据,没有详细分类汇总,我还想看到他点什么类型的,什么菜名,有几个订了这个,然后总价多少

明白了

第一个分类
select 供应商名称,count(姓名),菜谱名称,菜谱类别,sum(菜谱单价),sum(数量) from cpxxtb group by 供应商名称,菜谱名称,菜谱类别

第二个分类
如果是要根据供应商统计,可以写成:

select 供应商名称,count(姓名),sum(菜谱单价),sum(数量) from cpxxtb group by 供应商名称

最后最总合计:
select sum(菜谱单价),sum(数量) from cpxxtb

OVER

--生成测试数据
CREATE TABLE #T
(
供应商名称 VARCHAR(400),
姓名 VARCHAR(100),
菜谱名称 VARCHAR(100),
菜谱类别 VARCHAR(100),
菜谱单价 money,
日期 SMALLDATETIME,
数量 int
)
INSERT INTO #T
SELECT '乡里人家','小毛','鱼香肉丝','盖浇饭',8,GETDATE(),1
UNION ALL SELECT '乡里人家','小红','鱼香肉丝','盖浇饭',8,GETDATE(),1
UNION ALL SELECT '乡里人家','小毛','红烧鱼块','套餐饭',18,GETDATE(),1
UNION ALL SELECT '好滋味' ,'小毛','鱼香肉丝','盖浇饭',8,GETDATE(),1

--使用分级汇总
SELECT 菜谱名称,菜谱类别,总菜谱单价=SUM(菜谱单价),总数量=SUM(数量)
FROM #T
GROUP B