Select 更新语句 sap hana
Select with update statement sap hana
我正在尝试将 select 和更新合并到一个语句中
在 select 中,我试图根据 table "month_dim"
并使用当前日期查找当前财政年度的财政期间。它 运行 很好,因为它有相应的值。但是我需要将值从 select 传递到更新语句到相同的 table 以更新 CY
、PY
和 YTD
的值。目前在更新语句中我正在做硬编码并且有 3 个单独的更新语句。能合二为一就好了
select fiscal_period, fiscal_year from "schema_name"."month_dim" where date_sql = current_date
更新声明如下:-
UPDATE "Schema_name"."month_dim" SET
YTD = case when fiscal_period <= '1'
then 'Y' else 'N' end;
UPDATE " Schema_name "."month_dim" SET
CY = case when fiscal_year >= '2021'
then 'Y' else 'N' end;
UPDATE " Schema_name "."month_dim" SET
PY = case when fiscal_year <= '2021'
then 'Y' else 'N' end;
请帮忙
谢谢
这是您要找的吗? :
DO
BEGIN
DECLARE FISCALPERIOD NVARCHAR(3);
DECLARE FISCALYEAR NVARCHAR(4);
SELECT
fiscal_period, fiscal_year
INTO fiscalperiod, fiscalyear
FROM
schema_name.month_dim
WHERE
date_sql = current_date;
UPDATE schema_name.month_dim
SET
YTD = CASE
WHEN fiscal_period <= :fiscalperiod THEN 'Y'
ELSE 'N'
END
, CY = CASE
WHEN fiscal_year >= :fiscalyear THEN 'Y'
ELSE 'N'
END
, PY = CASE
WHEN fiscal_year <= :fiscalyear THEN 'Y'
ELSE 'N'
END;
END;
我正在尝试将 select 和更新合并到一个语句中
在 select 中,我试图根据 table "month_dim"
并使用当前日期查找当前财政年度的财政期间。它 运行 很好,因为它有相应的值。但是我需要将值从 select 传递到更新语句到相同的 table 以更新 CY
、PY
和 YTD
的值。目前在更新语句中我正在做硬编码并且有 3 个单独的更新语句。能合二为一就好了
select fiscal_period, fiscal_year from "schema_name"."month_dim" where date_sql = current_date
更新声明如下:-
UPDATE "Schema_name"."month_dim" SET
YTD = case when fiscal_period <= '1'
then 'Y' else 'N' end;
UPDATE " Schema_name "."month_dim" SET
CY = case when fiscal_year >= '2021'
then 'Y' else 'N' end;
UPDATE " Schema_name "."month_dim" SET
PY = case when fiscal_year <= '2021'
then 'Y' else 'N' end;
请帮忙
谢谢
这是您要找的吗? :
DO
BEGIN
DECLARE FISCALPERIOD NVARCHAR(3);
DECLARE FISCALYEAR NVARCHAR(4);
SELECT
fiscal_period, fiscal_year
INTO fiscalperiod, fiscalyear
FROM
schema_name.month_dim
WHERE
date_sql = current_date;
UPDATE schema_name.month_dim
SET
YTD = CASE
WHEN fiscal_period <= :fiscalperiod THEN 'Y'
ELSE 'N'
END
, CY = CASE
WHEN fiscal_year >= :fiscalyear THEN 'Y'
ELSE 'N'
END
, PY = CASE
WHEN fiscal_year <= :fiscalyear THEN 'Y'
ELSE 'N'
END;
END;