Issue Type
Running
Have you searched for existing issues?
Yes
OS Platform and Distribution
centos 7.8
SCQL Version
0.9.3.b1
What happend and What you expected to happen.
SELECT
X.ANONYMIZED_ID,
X.CUSTOMER_CODE,
X.NEW_INSTALL_CNT,
X.CANCEL_SERVICE_CNT,
X.BASIC_SERVICE_CNT,
X.BROADBAND_CNT,
D.UPGRADE_CNT,
D.DOWNGRADE_CNT
FROM (
SELECT
A.ANONYMIZED_ID,
C.CUSTOMER_CODE,
C.NEW_INSTALL_CNT,
C.CANCEL_SERVICE_CNT,
C.BASIC_SERVICE_CNT,
C.BROADBAND_CNT
FROM
T_CUSTOMER_MASTER A
LEFT JOIN (
SELECT
T2.CUSTOMER_CODE,
T2.BASIC_SERVICE_CNT,
T2.BROADBAND_CNT,
T2.NEW_INSTALL_CNT,
T1.CANCEL_SERVICE_CNT
FROM (
SELECT
CUSTOMER_CODE,
SUM(CASE
WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50')
AND ACTIVE_FLAG = '0' THEN 1 ELSE 0
END) BASIC_SERVICE_CNT,
SUM(CASE
WHEN SERVICE_TYPE IN ('40')
AND ACTIVE_FLAG = '0' THEN 1 ELSE 0
END) BROADBAND_CNT,
SUM(CASE
WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50')
AND STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) NEW_INSTALL_CNT
FROM
T_SERVICE_RECORDS
WHERE
ACTIVE_DATE IS NOT NULL
AND ACTIVE_DATE != ''
GROUP BY
CUSTOMER_CODE
) T2
LEFT JOIN (
SELECT
CUSTOMER_CODE,
SUM(CASE
WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50')
AND STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) CANCEL_SERVICE_CNT
FROM
T_SERVICE_RECORDS
WHERE
CLOSE_DATE IS NOT NULL
AND CLOSE_DATE != ''
GROUP BY
CUSTOMER_CODE
) T1
ON T2.CUSTOMER_CODE = T1.CUSTOMER_CODE
) C
ON A.CUSTOMER_CODE = C.CUSTOMER_CODE
) X
LEFT JOIN (
SELECT
CUSTOMER_CODE,
SUM(CASE
WHEN TRANSACTION_TYPE IN ('236', '136')
AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) UPGRADE_CNT,
SUM(CASE
WHEN TRANSACTION_TYPE IN ('226', '126')
AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) DOWNGRADE_CNT
FROM
T_TRANSACTION_HISTORY
WHERE
TRANSACTION_STATUS = '9'
AND PROCESSING_FLAG = '0'
AND CANCELLATION_FLAG = '0'
GROUP BY
CUSTOMER_CODE
) D
ON X.CUSTOMER_CODE = D.CUSTOMER_CODE 这个是我当前sql,之前版本是0.9.1.b1下是可以执行的,但是升版本以后报错
Configuration used to run SCQL.
SELECT
X.ANONYMIZED_ID,
X.CUSTOMER_CODE,
X.NEW_INSTALL_CNT,
X.CANCEL_SERVICE_CNT,
X.BASIC_SERVICE_CNT,
X.BROADBAND_CNT,
D.UPGRADE_CNT,
D.DOWNGRADE_CNT
FROM (
SELECT
A.ANONYMIZED_ID,
C.CUSTOMER_CODE,
C.NEW_INSTALL_CNT,
C.CANCEL_SERVICE_CNT,
C.BASIC_SERVICE_CNT,
C.BROADBAND_CNT
FROM
T_CUSTOMER_MASTER A
LEFT JOIN (
SELECT
T2.CUSTOMER_CODE,
T2.BASIC_SERVICE_CNT,
T2.BROADBAND_CNT,
T2.NEW_INSTALL_CNT,
T1.CANCEL_SERVICE_CNT
FROM (
SELECT
CUSTOMER_CODE,
SUM(CASE
WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50')
AND ACTIVE_FLAG = '0' THEN 1 ELSE 0
END) BASIC_SERVICE_CNT,
SUM(CASE
WHEN SERVICE_TYPE IN ('40')
AND ACTIVE_FLAG = '0' THEN 1 ELSE 0
END) BROADBAND_CNT,
SUM(CASE
WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50')
AND STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) NEW_INSTALL_CNT
FROM
T_SERVICE_RECORDS
WHERE
ACTIVE_DATE IS NOT NULL
AND ACTIVE_DATE != ''
GROUP BY
CUSTOMER_CODE
) T2
LEFT JOIN (
SELECT
CUSTOMER_CODE,
SUM(CASE
WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50')
AND STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) CANCEL_SERVICE_CNT
FROM
T_SERVICE_RECORDS
WHERE
CLOSE_DATE IS NOT NULL
AND CLOSE_DATE != ''
GROUP BY
CUSTOMER_CODE
) T1
ON T2.CUSTOMER_CODE = T1.CUSTOMER_CODE
) C
ON A.CUSTOMER_CODE = C.CUSTOMER_CODE
) X
LEFT JOIN (
SELECT
CUSTOMER_CODE,
SUM(CASE
WHEN TRANSACTION_TYPE IN ('236', '136')
AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) UPGRADE_CNT,
SUM(CASE
WHEN TRANSACTION_TYPE IN ('226', '126')
AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR)
THEN 1 ELSE 0
END) DOWNGRADE_CNT
FROM
T_TRANSACTION_HISTORY
WHERE
TRANSACTION_STATUS = '9'
AND PROCESSING_FLAG = '0'
AND CANCELLATION_FLAG = '0'
GROUP BY
CUSTOMER_CODE
) D
ON X.CUSTOMER_CODE = D.CUSTOMER_CODE
SCQL log output.
WARN[0500] content-type (text/plain; charset=utf-8) is not one of application/json and application/x-protobuf
[fetch]err: Code: 320, message:RunExecutionPlan run jobs(92b2784f-559a-11f0-9d7e-0242ac160002) failed, catch std::exception=[Enforce fail at engine/datasource/csvdb_adaptor.cc:194] !duck_result->HasError(). send query to DuckDB failed, msg=Binder Error: Referenced table "C" not found!
Candidate tables: "D", "A"
LINE 1: ...evt_cb_trade_his"."CUSTOMER_CODE ") as "D" on "C"."NEW_INSTALL_CNT"="D"."CUSTOMER_CODE";
Issue Type
Running
Have you searched for existing issues?
Yes
OS Platform and Distribution
centos 7.8
SCQL Version
0.9.3.b1
What happend and What you expected to happen.
SELECT X.ANONYMIZED_ID, X.CUSTOMER_CODE, X.NEW_INSTALL_CNT, X.CANCEL_SERVICE_CNT, X.BASIC_SERVICE_CNT, X.BROADBAND_CNT, D.UPGRADE_CNT, D.DOWNGRADE_CNT FROM ( SELECT A.ANONYMIZED_ID, C.CUSTOMER_CODE, C.NEW_INSTALL_CNT, C.CANCEL_SERVICE_CNT, C.BASIC_SERVICE_CNT, C.BROADBAND_CNT FROM T_CUSTOMER_MASTER A LEFT JOIN ( SELECT T2.CUSTOMER_CODE, T2.BASIC_SERVICE_CNT, T2.BROADBAND_CNT, T2.NEW_INSTALL_CNT, T1.CANCEL_SERVICE_CNT FROM ( SELECT CUSTOMER_CODE, SUM(CASE WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50') AND ACTIVE_FLAG = '0' THEN 1 ELSE 0 END) BASIC_SERVICE_CNT, SUM(CASE WHEN SERVICE_TYPE IN ('40') AND ACTIVE_FLAG = '0' THEN 1 ELSE 0 END) BROADBAND_CNT, SUM(CASE WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50') AND STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) NEW_INSTALL_CNT FROM T_SERVICE_RECORDS WHERE ACTIVE_DATE IS NOT NULL AND ACTIVE_DATE != '' GROUP BY CUSTOMER_CODE ) T2 LEFT JOIN ( SELECT CUSTOMER_CODE, SUM(CASE WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50') AND STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) CANCEL_SERVICE_CNT FROM T_SERVICE_RECORDS WHERE CLOSE_DATE IS NOT NULL AND CLOSE_DATE != '' GROUP BY CUSTOMER_CODE ) T1 ON T2.CUSTOMER_CODE = T1.CUSTOMER_CODE ) C ON A.CUSTOMER_CODE = C.CUSTOMER_CODE ) X LEFT JOIN ( SELECT CUSTOMER_CODE, SUM(CASE WHEN TRANSACTION_TYPE IN ('236', '136') AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) UPGRADE_CNT, SUM(CASE WHEN TRANSACTION_TYPE IN ('226', '126') AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) DOWNGRADE_CNT FROM T_TRANSACTION_HISTORY WHERE TRANSACTION_STATUS = '9' AND PROCESSING_FLAG = '0' AND CANCELLATION_FLAG = '0' GROUP BY CUSTOMER_CODE ) D ON X.CUSTOMER_CODE = D.CUSTOMER_CODE 这个是我当前sql,之前版本是0.9.1.b1下是可以执行的,但是升版本以后报错Configuration used to run SCQL.
SELECT X.ANONYMIZED_ID, X.CUSTOMER_CODE, X.NEW_INSTALL_CNT, X.CANCEL_SERVICE_CNT, X.BASIC_SERVICE_CNT, X.BROADBAND_CNT, D.UPGRADE_CNT, D.DOWNGRADE_CNT FROM ( SELECT A.ANONYMIZED_ID, C.CUSTOMER_CODE, C.NEW_INSTALL_CNT, C.CANCEL_SERVICE_CNT, C.BASIC_SERVICE_CNT, C.BROADBAND_CNT FROM T_CUSTOMER_MASTER A LEFT JOIN ( SELECT T2.CUSTOMER_CODE, T2.BASIC_SERVICE_CNT, T2.BROADBAND_CNT, T2.NEW_INSTALL_CNT, T1.CANCEL_SERVICE_CNT FROM ( SELECT CUSTOMER_CODE, SUM(CASE WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50') AND ACTIVE_FLAG = '0' THEN 1 ELSE 0 END) BASIC_SERVICE_CNT, SUM(CASE WHEN SERVICE_TYPE IN ('40') AND ACTIVE_FLAG = '0' THEN 1 ELSE 0 END) BROADBAND_CNT, SUM(CASE WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50') AND STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(ACTIVE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) NEW_INSTALL_CNT FROM T_SERVICE_RECORDS WHERE ACTIVE_DATE IS NOT NULL AND ACTIVE_DATE != '' GROUP BY CUSTOMER_CODE ) T2 LEFT JOIN ( SELECT CUSTOMER_CODE, SUM(CASE WHEN SERVICE_TYPE IN ('10', '16', '17', '33', '50') AND STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(CLOSE_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) CANCEL_SERVICE_CNT FROM T_SERVICE_RECORDS WHERE CLOSE_DATE IS NOT NULL AND CLOSE_DATE != '' GROUP BY CUSTOMER_CODE ) T1 ON T2.CUSTOMER_CODE = T1.CUSTOMER_CODE ) C ON A.CUSTOMER_CODE = C.CUSTOMER_CODE ) X LEFT JOIN ( SELECT CUSTOMER_CODE, SUM(CASE WHEN TRANSACTION_TYPE IN ('236', '136') AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) UPGRADE_CNT, SUM(CASE WHEN TRANSACTION_TYPE IN ('226', '126') AND STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S') > SUBDATE(STR_TO_DATE(REQUEST_DATE, '%Y%m%d%H%M%S'), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) DOWNGRADE_CNT FROM T_TRANSACTION_HISTORY WHERE TRANSACTION_STATUS = '9' AND PROCESSING_FLAG = '0' AND CANCELLATION_FLAG = '0' GROUP BY CUSTOMER_CODE ) D ON X.CUSTOMER_CODE = D.CUSTOMER_CODESCQL log output.