SQL查询-db2 / 400 iseries

我的SQL组语句的结果如下表所示。从此表中,当价格和日期匹配时,我需要从代码='B'的数量中减去代码='S'的数量。

例如,在下表中,我需要将值存储在工作变量中。

1)前两行100-50 = 50
2)第三行和第四行60 -30 = 30
3)最后一行,因为它没有代码“ S”,它应该只返回20

桌子

Price    Date        Code    Sum(Qty)
9.0      201512       B       100
9.0      201512       S       50
8.0      201506       B       60
6.0      201506       S       30
5.0      201508       B       20 

用于获取上表的SQL查询

select Price, Date, Code,sum(Qty) from Table
   where    Type = 'A' and  Acct = 'CLOSED'
   group by  Price,Date,Code
   order by Price,Date

我可以使用CASE语句修改上面键入的现有SQL语句以获取所需的输出。我试过了,但是Cursor一行一行地返回,并且CASE似乎不起作用

exec sql
declare c1 cursor for
select Price, Date, Code,
Case when Code ='B' then  ifnull(sum(Qty),0)
    when Code ='S' then  (-1 * ifnull(sum(Qty),0)) end
from Table

where    Type = 'A' and  Acct = 'CLOSED'
group by  Price,Date,Code
order by Price,Date

exec sql
open c1

exec sql
fetch c1  into :var_price, :var_date, :var_code, :var_Bqty, :VarSqty

在iseries系统上使用SQLRPGLE。

戈登·利诺夫(Gordon Linoff)

您可以为此使用条件聚合:

select Price, Date,
       sum(case when code = 'B' then Qty when code = 'S' then -QTY end) as diff
from Table
where Type = 'A' and Acct = 'CLOSED'
group by Price, Date
order by Price, Date;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询-db2 / 400 iseries

来自分类Dev

SQL:DB2 iSeries的窗口聚合函数

来自分类Dev

请求者无法建立连接。码头,升降机/斯卡拉,iSeries DB2 / 400

来自分类Dev

IBM iSeries DB2朱利安日期/日历日期SQL转换

来自分类Dev

直接在iSeries上的SQL DB2日记帐分录

来自分类Dev

IBM DB2 for i SQL(iSeries)-使用更新从字段末尾除去字符

来自分类Dev

How can I get a UTC timestamp in SQL400 on iSeries?

来自分类Dev

配置SQuirrel SQL Client以用于DB2 / AS400

来自分类Dev

配置SQuirrel SQL Client以用于DB2 / AS400

来自分类Dev

比较日期db2 / 400与SQL Server

来自分类Dev

DB2 AS / 400版本4的SQL查询限制

来自分类Dev

在与.NET中的iSeries AS400数据库的ODBC连接中使用查询参数吗?

来自分类Dev

如何在 CL/400 中使用 runqry 命令使用 where 条件执行 db2 查询

来自分类Dev

如何在iSeries上的SQL400中获得UTC时间戳?

来自分类Dev

在运行于AS400、6.1的DB2中进行SQL合并

来自分类Dev

DB2 AS/400:表的 10 个字符的不同系统名称和 SQL 名称

来自分类Dev

在 iSeries/AS400 上运行 jprofiler 的问题

来自分类Dev

Cobol DB2 SQL查询-NOT IN参数

来自分类Dev

SQL DB2查询语法问题

来自分类Dev

DB2 中的 SQL SELECT 查询

来自分类Dev

可以在没有PRG的情况下通过VB.Net查询As400 DB2吗?

来自分类Dev

使用IBM iSeries Client Access从AS400 db文件创建.CSV文件时,是否可以挤出前导空格?

来自分类Dev

C#ADO.Net与db2 iseries-连接无效

来自分类Dev

使用.NET连接到iseries DB2数据库

来自分类Dev

在db2数据库上插入失败(在iSeries上)

来自分类Dev

如何从IBM iSeries DB2 v7.1发送电子邮件

来自分类Dev

使用Iseries SQL拆分列

来自分类Dev

DB2,SQL查询到SUM 2列

来自分类Dev

AS400 iSeries客户端访问多个版本

Related 相关文章

  1. 1

    SQL查询-db2 / 400 iseries

  2. 2

    SQL:DB2 iSeries的窗口聚合函数

  3. 3

    请求者无法建立连接。码头,升降机/斯卡拉,iSeries DB2 / 400

  4. 4

    IBM iSeries DB2朱利安日期/日历日期SQL转换

  5. 5

    直接在iSeries上的SQL DB2日记帐分录

  6. 6

    IBM DB2 for i SQL(iSeries)-使用更新从字段末尾除去字符

  7. 7

    How can I get a UTC timestamp in SQL400 on iSeries?

  8. 8

    配置SQuirrel SQL Client以用于DB2 / AS400

  9. 9

    配置SQuirrel SQL Client以用于DB2 / AS400

  10. 10

    比较日期db2 / 400与SQL Server

  11. 11

    DB2 AS / 400版本4的SQL查询限制

  12. 12

    在与.NET中的iSeries AS400数据库的ODBC连接中使用查询参数吗?

  13. 13

    如何在 CL/400 中使用 runqry 命令使用 where 条件执行 db2 查询

  14. 14

    如何在iSeries上的SQL400中获得UTC时间戳?

  15. 15

    在运行于AS400、6.1的DB2中进行SQL合并

  16. 16

    DB2 AS/400:表的 10 个字符的不同系统名称和 SQL 名称

  17. 17

    在 iSeries/AS400 上运行 jprofiler 的问题

  18. 18

    Cobol DB2 SQL查询-NOT IN参数

  19. 19

    SQL DB2查询语法问题

  20. 20

    DB2 中的 SQL SELECT 查询

  21. 21

    可以在没有PRG的情况下通过VB.Net查询As400 DB2吗?

  22. 22

    使用IBM iSeries Client Access从AS400 db文件创建.CSV文件时,是否可以挤出前导空格?

  23. 23

    C#ADO.Net与db2 iseries-连接无效

  24. 24

    使用.NET连接到iseries DB2数据库

  25. 25

    在db2数据库上插入失败(在iSeries上)

  26. 26

    如何从IBM iSeries DB2 v7.1发送电子邮件

  27. 27

    使用Iseries SQL拆分列

  28. 28

    DB2,SQL查询到SUM 2列

  29. 29

    AS400 iSeries客户端访问多个版本

热门标签

归档