I'm trying to combine select and update in one statement
In select I'm trying to find what is the current Fiscal year fiscal period based on table "month_dim"
and by using current date. its running fine since it has corresponding values. But I need to pass values from select to update statement to same table to update values of CY
, PY
and YTD
. Currently in update statements I'm doing hard coding and have 3 separate update statements. it will good if it can be combined in one as well.
select fiscal_period, fiscal_year from "schema_name"."month_dim" where date_sql = current_date
update statements are below:-
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;
Please help
Thanks
Is this what you are looking for? :
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;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.