Delete 语句不适用于 Decimal 列

Delete statement not working for a Decimal column

我正在处理如下删除语句:

DEL FROM X.SALES1
WHERE CAST(SALES_T_ID AS DECIMAL(18,0)) IN(

SEL CAST(T1.SALES_T_ID AS DECIMAL(18,0) )FROM
(
SEL *  FROM 
X.SALES1
QUALIFY ROW_NUMBER() OVER( PARTITION BY SALES_SRC_ID,DSTC ORDER BY UPDATED_DATE_TIMESTAMP DESC) >1
) T1
) ; 

以上删除要保留最新记录,其余删除。 但是,它正在删除所有记录。 我已经检查了内部查询并且工作正常,只选择了最新更新记录以外的记录。 但是我不明白为什么要删除所有记录?

下面是Table结构:

CREATE SET TABLE X.SALES1 ,FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO,
     MAP = TD_MAP1
     (
      SALES_T_ID DECIMAL(18,0),
      SALES_TRANS_NUM VARCHAR(30) CHARACTER SET LATIN NOT CASESPECIFIC,
      SALES_SRC_ID VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC,
      SALES_TRANS_START_DTTM TIMESTAMP(0),
      ST_EXPECTED_CLOSE_DTTM TIMESTAMP(0),
      ST_ACTUAL_CLOSE_DTTM TIMESTAMP(0),
      ST_ACT_CONT_DTTM TIMESTAMP(0),
      ST_EXP_CONT_CLS_DTTM TIMESTAMP(0)
)
PRIMARY INDEX ( SALES_T_ID );

示例数据:

SALES_T_ID SALES_SRC_ID
715,603    3-3SDDJH5
593,803    3-3SDDJH5
715,604    3-3SDDJIG
593,804    3-3SDDJIG
715,605    3-3SDDJJR

编辑:

我的要求是只保留最新的一行 Sales_trans_src_id 和 data_source_type_cd 基于 updated_date_timestamp 的组合。

DEL FROM X.SALES1
WHERE CAST(SALES_T_ID AS DECIMAL(18,0)) IN(

SEL CAST(T1.SALES_T_ID AS DECIMAL(18,0) )FROM
(
SEL *  FROM 
X.SALES1
QUALIFY rank() OVER( PARTITION BY SALES_SRC_ID,DSTC ORDER BY UPDATED_DATE_TIMESTAMP DESC) > 1
) T1
;

你能检查一下吗 );