列表统计,如何根据外部条件对显示的值做一些处理

本帖最后由 xiarilian12 于 2012-1-11 15:03 编辑

数据库数据如下
商品ID     订货类型         订(退)货量
1000          10                  10
1000          10                  6
1000          20                  5

页面有一查询条件——订货类型,该控件为下拉框,显示值为“全部(订货-退货)”,“订货”,“退货”

当我在页面选择订货类型为“订货”(value为10)时
列表显示
商品ID       订(退)货数量
1000              16

当我选择订货类型为“退货”(value为20)时
列表显示
商品ID       订(退) 货数量
1000           5

当我选择订货类型为“全部(订货-退货)”时
列表期望显示
商品ID       订(退)货数量
1000           11

红色部分是我想得到的答案,其中13为订货数量减去退货数量
我之前用ORCLE实现,自己写SQL如下(与fr的SQL不一样fr的分组是在设计器里实现的)
SELECT GOODS_ID, SUM(DECODE(ORDER_TYPE, 10,  ORDERING_QUANTITY, 20,  ORDERING_QUANTITY*-1)) ORDERING_QUANTITY
FROM 订单表
当ORDER_TYPE(订货类型)为10(订货)的时候,数量为正数,当订货类型为20(退货)时,数量乘以负一,这样的话
SUM起来,正数+负数就实现红色字体描述的需求。

现在采用FR了,我不知道如何去实现红色部分的需求。

PS:订货、退货数据都在同一张表中,只是有一个字段ORDER_TYPE区别是订货还是退货。
FineReportxiarilian12 发布于 2012-1-11 14:57
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共10回答
最佳回答
0
译生发布于2012-1-11 15:03(编辑于 2023-9-6 09:34)
555
  • yuzhifu yuzhifu

    老大下线了。。。。。。
    [attach]1756[/attach]
    回复
    2012-01-11 15:07 
最佳回答
0
yuzhifu发布于2012-1-11 15:04(编辑于 2023-9-6 09:34)
555
  • xiarilian12 xiarilian12(提问者)

    我之前没用fr的时候,就是在oracle上自己写sql实现的,oracle上有专门的函数decode去实现红色部分描述的需求。
    现在用fr了并且将数据库换成mysql,该decode函数用不了了,如果用sql硬编码的话只能写成 case when then的形式。

    用case when的话就与数据库绑定了,我想能不能做成与数据库无关
    就比如现在fr的做法
    在设计数据集的时候,只需要简单的些 select id, 数量 FROM 订单表 并不需要在末尾加上GROUP by
    然后需要分组的话,在设计器上选中某个单元格,但后选择分组即可。



    回复
    2012-01-11 15:20 
最佳回答
0
yuzhifu发布于2012-1-11 15:07(编辑于 2023-9-6 09:34)
555
最佳回答
0
译生发布于2012-1-11 15:11(编辑于 2023-9-6 09:34)
555
  • xiarilian12 xiarilian12(提问者)
    哥们,我就是想要这种效果,但我的值是从外部过来的,我不知道怎么接收,不清楚在设计器里怎么实现。选择“订货”则外部传10,选择“退货”则外部传20,选择“全部(订货-退货)”则外部传100.
    回复
    2012-01-11 15:21 
最佳回答
0
xiarilian12发布于2012-1-11 15:20(编辑于 2023-9-6 09:34)
555
最佳回答
0
xiarilian12发布于2012-1-11 15:21(编辑于 2023-9-6 09:34)
555
最佳回答
0
vikou发布于2012-1-11 15:27(编辑于 2023-9-6 09:34)
555
  • xiarilian12 xiarilian12(提问者)

    订(退)货数量——当选择订货类型为“订货”时该列展示订货的数量,选择为“退货”时该列展示退货的数量,选择“全部(订货-退货)”时,该列展示订货数量减去退货数量的结果
    回复
    2012-01-11 15:37 
  • xiarilian12 xiarilian12(提问者)

    你的计算结果不对
    应该是订货的10+6减去退货的5
    结果为11
    回复
    2012-01-11 15:41 
最佳回答
0
xiarilian12发布于2012-1-11 15:29(编辑于 2023-9-6 09:34)
555
  • vikou vikou

    那我表达的结果对不啊
    回复
    2012-01-11 15:35 
最佳回答
0
vikou发布于2012-1-11 15:35(编辑于 2023-9-6 09:34)
555
最佳回答
0
xiarilian12发布于2012-1-11 15:37(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 2549浏览人数
  • 最后回答于:2012-1-12 07:48
    活动推荐 更多
    热门课程 更多
    返回顶部