日期 车号 货物编号 货物名称 现付 提付 电话
2007/10/8 K123 aaa111 XO 1000 0 5849568
2007/10/8 K123 aaa222 篮球 0 200 2849598
小计 1000 200
2007/10/8 D333 aaa333 自行车 0 200 5946785
2007/10/8 D333 aaa555 苹果 0 100 6584795
小计 0 300
2007/10/8 F555 aaa598 法拉里 100 0 3359468
2007/10/8 F555 aaa123 科比战靴 0 2500 3462159
小计 100 2500
总计 1100 3000
如上所表达的样式。当天 发车 三 辆 , 每辆车各有自己的货物。对每辆车的物品进行 合计,也就是小计。
在最后进行 总计,也就是 三辆车所有物品 价钱的总计。(现付,提付 是付款的方式)
谢谢帮忙拉``谢谢!
听说 嵌套GridView可以实现。不知道是不是。
我试图用SQL语句直接搞顶,但是失败了。如下:
select case when (GROUPING(bb.odata) = 1) THEN bb.odata else ISNULL(bb.odata,'UNKNOWN')end as '发货日期',
case when (GROUPING(bb.onumber) = 1) THEN '合计' else ISNULL(bb.onumber,'UNKNOWN')end as '车号',
case when (grouping(c_goodsId)=1) then '合计' else isnull(c_goodsId,'unknown')end as '货物编号',
case when (grouping(c_goodsName)=1)then '合计' else isnull(c_goodsName,'unknown')end as '货物名称',
sum(c_payback)from consign as aa inner join consignment as bb on aa.cid=bb.cid
group by bb.odata,bb.onumber,c_goodsId,c_goodsName with Rollup
------解决方案--------------------------------------------------------
参考:
http://dotnet.aspx.cc/article/54f4c732-aae2-4135-fb1b-7b4b613baa33/read.aspx
------解决方案--------------------------------------------------------
报表一般都会提供小计总计的功能,一般不是在数据上处理,而是在报表上设计。
------解决方案--------------------------------------------------------
如果想在页面上实现,可以采取 Datalist 双嵌套的方式实现
------解决方案--------------------------------------------------------
可以在Datalist绑定数据时通过增加行的方式实现。
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
- SQL code
--创建环境drop table ttcreate table tt(mydate datetime,busNum varchar(10),goodsNum varchar(10),goodsName varchar(10),XF int,TF int,tel varchar(10)) insert into tt select '2007/10/8','K123','aaa111','XO',1000,0,'5849568' union select '2007/10/8','K123','aaa222','篮球',0,200,'2849598' union select '2007/10/8','D333','aaa333','自行车',0,200,'5946785' union select '2007/10/8','D333','aaa555','苹果',0,100,'6584795' union select '2007/10/8','F555','aaa598','法拉里',100,0,'3359468' union select '2007/10/8','F555','aaa123','科比战靴',0,2500,'3462159'--初始数据select * from tt日期 车号 货物编号 货物名称 现付 提付 电话 ------------------------------------------------------------------------2007-10-08 00:00:00.000 D333 aaa333 自行车 0 200 59467852007-10-08 00:00:00.000 D333 aaa555 苹果 0 100 65847952007-10-08 00:00:00.000 F555 aaa123 科比战靴 0 2500 34621592007-10-08 00:00:00.000 F555 aaa598 法拉里 100 0 33594682007-10-08 00:00:00.000 K123 aaa111 XO 1000 0 58495682007-10-08 00:00:00.000 K123 aaa222 篮球 0 200 2849598--执行SQL语句select a.mydate,a.busNum,a.goodsNum,a.goodsName,a.XF,a.TF,a.tel from(select convert(varchar(10),mydate,111) as mydate,busNum,goodsNum,goodsName,XF,TF,tel,1 as myTemp,busNum as bn from tt unionselect '小计',null,null,null,sum(XF),sum(TF),null,2 as myTemp,max(busNum) as bn from tt group by busNumunionselect '总计',null,null,null,sum(XF),sum(TF),null,3 as myTemp,max(busNum) as bn from tt) a order by a.bn,a.myTemp--查询结果日期 车号 货物编号 货物名称 现付 提付 电话 ------------------------------------------------------------------------2007/10/08 D333 aaa333 自行车 0 200 59467852007/10/08 D333 aaa555 苹果 0 100 6584795小计 NULL NULL NULL 0 300 NULL2007/10/08 F555 aaa123 科比战靴 0 2500 34621592007/10/08 F555 aaa598 法拉里 100 0 3359468小计 NULL NULL NULL 100 2500 NULL2007/10/08 K123 aaa111 XO 1000 0 58495682007/10/08 K123 aaa222 篮球 0 200 2849598小计 NULL NULL NULL 1000 200 NULL总计 NULL NULL NULL 1100 3000 NULL--如果你不想显示NULL,可以执行以下代码select a.mydate,isnull(a.busNum,''),isnull(a.goodsNum,''),isnull(a.goodsName,''),a.XF,a.TF,isnull(a.tel,'') from(select convert(varchar(10),mydate,111) as mydate,busNum,goodsNum,goodsName,XF,TF,tel,1 as myTemp,busNum as bn from tt unionselect '小计',null,null,null,sum(XF),sum(TF),null,2 as myTemp,max(busNum) as bn from tt group by busNumunionselect '总计',null,null,null,sum(XF),sum(TF),null,3 as myTemp,max(busNum) as bn from tt) a order by a.bn,a.myTemp--查询结果日期 车号 货物编号 货物名称 现付 提付 电话 ------------------------------------------------------------------------2007/10/08 D333 aaa333 自行车 0 200 59467852007/10/08 D333 aaa555 苹果 0 100 6584795小计 0 300 2007/10/08 F555 aaa123 科比战靴 0 2500 34621592007/10/08 F555 aaa598 法拉里 100 0 3359468小计 100 2500 2007/10/08 K123 aaa111 XO 1000 0 58495682007/10/08 K123 aaa222 篮球 0 200 2849598小计 1000 200 总计 1100 3000