SQL 的相关问题请教

表PHPICK00

PHPDCRPHPTCRPHPCTLPHGMDSPHPSTFPHOTYP
202012171424070000000069SA2012160010281991
202012171424070000000070SA2012160010282902
202012171424080000000071SA2012160010283103

表PDPICK00

PDPCTLPDSTYLPDSSFXPDCOLRPDCSFXPDSZDSPDOGQTPDSHQT
0000000069L121M0070019M21
0000000069L121M007080019L11
0000000071216166BKWM10

说明:PHPCTL 订单号,PDOGQT 订单数量, PDSHQT发货数量, PHOTYP 订单类型(2=B2C,其他=B2B), PHPSTF订单状态(10=未生产,90=完成,99=取消)
问题:查询出异常出库数据
需要将日期和时间字段合并成一个日期格式(2020-12-17 14:24:07),将PHGMDS字段中的空格去掉,将PHOTYP的值替换成描述内容,将PDSTYL,PDSSFX,PDCOLR,PDCSFX,PDSZDS 合并成一个字段SKU

异常出库数据 是指 发货数量 > 订单数量:

select concat(concat(substr(PHPDCR, 1, 4), '-', substr(PHPDCR, 5, 2), '-', substr(PHPDCR, 7, 2)),
              ' ', concat(substr(PHPTCR, 1, 2), ':', substr(PHPTCR, 3, 2), ':', substr(PHPTCR, 5, 2)))            as order_date,
       trim(PHGMDS)                                                                                               as PHGMDS,
       case when PHOTYP = 2 then 'B2C' else 'B2B' end                                                             as PHOTYP,
       concat(ifnull(PDSTYL, ''), ifnull(PDSSFX, ''), ifnull(PDCOLR, ''), ifnull(PDCSFX, ''), ifnull(PDSZDS, '')) as sku
from phpick00
         left join pdpick00 on phpick00.PHPCTL = pdpick00.PDPCTL
where PHPSTF = 99 -- 订单状态 = 取消
   or PDSHQT > PDOGQT -- 发货数量 > 订单数量
  • 这篇文章:SQL异常相关 也许有你想要的答案,你可以看看