选择每个订单的每种费用的数目,每行纪录为一个订单信息
来源:互联网 发布:爆款淘宝说不合格商品 编辑:程序博客网 时间:2024/04/30 13:19
ordertable orderid ordername 1 name1 2 name2 feetype feeid feetype 1 fee1 2 fee2 accountTable amountid amount orderid feeid 1 100 1 1 2 101 1 2 3 102 2 1 4 103 2 2 Expect result ordername fee1name fee1amount fee2name fee2amount name1 fee1 100 fee2 101 name2 fee1 102 fee2 103 SQL you want to select the mount of every fee type for each order. 1. so firstly you need change all fee type name in row mode to column mode. For change, you may need declare varchar to store. declare @sql varchar(8000) set @sql = 'select ordername,' select 'name, ' from feetype set @sql = left(@sql,len(@sql)-1) set @sql = @sql + ' from feetype' print(@sql) In this sql, you will select every type in table feetype, and change them to column. 2. But you need select the type which was exist in the accountable. so you need add condition. declare @sql varchar(8000) set @sql = 'select ordername,' select @sql = @sql + 'max(case feename when ''' + feename + ''' then feename else '''' end) as ' + feename +'name, ' from ( select distinct f.feename from accounttable a left join feetype f on a.feeid = f.feeid )t set @sql = left(@sql,len(@sql)-1) set @sql = @sql + ' from feetype' print(@sql) 3. At last we need select order and amount info, so need modify the select table. declare @sql varchar(8000) set @sql = 'select ordername,' select @sql = @sql + 'max(case feename when ''' + feename + ''' then feename else '''' end) as ' + feename +'name, ' + 'max(case feename when ''' + feename + ''' then amount else 0 end) as ' + feename + 'amount,' from ( select distinct f.feename from accounttable a left join feetype f on a.feeid = f.feeid )t set @sql = left(@sql,len(@sql)-1) set @sql = @sql + ' from ( select a.amount,o.ordername,f.feename from accounttable a left join ordertable o on o.orderid = a.orderid left join feetype f on a.feeid = f.feeid )t group by ordername' print(@sql) So now you should get the expect result
- 选择每个订单的每种费用的数目,每行纪录为一个订单信息
- 查询每个订单中订单明细中只支付了部分或为支付的订单
- 三种找每个客户最小订单的写法
- hive 获取每个城市30%的订单
- iOS 订单选择类型的实现
- 生产订单相关信息的获取
- 获取生产订单的状态信息
- 更新合并后的订单汇总信息
- pumps report泵的相关信息订单
- mybatis和mysql中查询前六个月订单中每个月的总订单数
- 订单信息
- 销售订单配置的另外一个取法
- 如何创建一个SAP的销售订单
- php一个生成唯一订单的函数
- php web下订单编号的生成(隐藏订单上面的统计信息)
- 从订单信息页面进入订单详细商品页面,最简单的MVC思想
- 生产订单的审核
- 订单的结算日期
- ASP.NET MVC调用Delphi开发的Web报表打印activex组件
- python链接mysql常见问题
- 远程连接数据库语句
- 委托使用lambda表达式
- VS2010编译MFC程序出错的原因
- 选择每个订单的每种费用的数目,每行纪录为一个订单信息
- 重复数据删除技术解析
- Asp.Net 4.0 SEO增强之 UrlRouting
- 浅谈咨询行业知识管理应用
- cookie编程总结
- 使用Perl的HTML::TreeBuilder::XPath来解析网页内容
- vss是什么
- MD5速度
- oracle expdp/impdp 用法详解