Select BILL_ID,SUM(Case When DR_CR=1 Then AMT Else 0 End) as D_AMT, SUM(Case When DR_CR=2 Then AMT Else 0 End) as C_AMT From zhlx_baa.glb_ex_vou_detail Where MOF_DIV_CODE='530523000' and ACCT_SET_CODE='533323000_ACCT_2022_001' and FISCAL_YEAR=2022 and VOU_STATUS <>-9 and PRO_CODE='530523221100001069889' Group by BILL_ID
时间: 2023-04-01 19:01:31 浏览: 70
这是一个 SQL 查询语句,用于从 zhlx_baa.glb_ex_vou_detail 表中选择账单 ID、借方金额和贷方金额,并按账单 ID 进行分组。查询条件为 MOF_DIV_CODE='530523000'、ACCT_SET_CODE='533323000_ACCT_2022_001'、FISCAL_YEAR=2022、VOU_STATUS <>-9 和 PRO_CODE='530523221100001069889'。
相关问题
"sum(CASE WHEN b.stmt_status = 1 THEN b.stmt_amt ELSE 0 END) as unpaid_amt, "
这段代码看起来像是SQL查询语句中的一部分,用于计算未支付金额(unpaid_amt)。它使用了CASE WHEN语句来根据条件对数据进行处理。
假设这段代码是在SELECT语句中的一部分,大致解释如下:
```sql
SELECT
sum(CASE WHEN b.stmt_status = 1 THEN b.stmt_amt ELSE 0 END) as unpaid_amt,
...
FROM
...
```
在这个例子中,假设存在一个表(或表的别名为b),包含了字段stmt_status和stmt_amt。代码使用CASE WHEN语句来判断stmt_status的值是否等于1,如果是,则将stmt_amt加入计算总和中(通过sum函数实现),否则将0加入计算总和中。最后的结果将被命名为unpaid_amt。
请注意,上述解释仅基于提供的代码片段,具体的查询语句和数据表结构可能会有所不同。
ifnull(sum(CASE WHEN b.stmt_status = 1 THEN b.stmt_amt ELSE 0 END) ,0 ) as unpaid_amt,
非常抱歉,我之前的回答有误。对于你提供的代码,如果要使用IFNULL函数处理空值,可以将其放在sum函数的外面。以下是修正后的代码示例:
```sql
SELECT
IFNULL(sum(CASE WHEN b.stmt_status = 1 THEN b.stmt_amt ELSE 0 END), 0) as unpaid_amt,
...
FROM
...
```
在这个修正后的代码中,`IFNULL`函数用于处理`sum(CASE WHEN b.stmt_status = 1 THEN b.stmt_amt ELSE 0 END)`的结果。如果结果为`NULL`,则替换为0。最后的结果将被命名为`unpaid_amt`。
请注意,上述解释仅基于提供的代码片段,具体的查询语句和数据表结构可能会有所不同。