Skip to main content

Japan

Announcements
QlikWorld 2023, a live, in-person thrill ride. Save $300 before February 6: REGISTER NOW!
cancel
Showing results for 
Search instead for 
Did you mean: 
sahideki200701
Contributor
Contributor

ロードスクリプトで複数の条件分岐を行う方法が知りたいです

ロードスクリプト内で、日付を基に複数の条件分岐を行ってフラグを付けることを行いたいのですが、
elseif を使うことができず、どうすればいいのかが分かりません。
初歩的な質問かもしれないのですが、何回か検索しても分からないので、ご教示いただけると助かります。

 

行いたいイメージは下記です(下線部分が誤りで、エラーで動きませんが…)

LOAD
id,
Start_Day,
Login_Day
, if(Start_Day = Login_Day,'1','0') as New_Player
, if(Start_Day = Date(Login_Day - 1,'YYYY/MM/DD'),'1','0') as Played_Yesterday
, if(Start_Day >= '2021/11/10' and Start_Day < '2021/12/01, '1')
elseif(Start_Day >= '2021/12/01 and Start_Day <= '2022/01/01', '2')
elseif(Start_Day >= '2022/01/01 and Start_Day <= '2022/04/01', '3','4') as Seasons
FROM [lib://DataFiles/Prod_Login_Startday_List.qvd]
(qvd);

2 Replies
Ochanoko
Contributor III
Contributor III

if関数を用いる場合、次の様に設定します。

if(条件, Then, Else)

 

elseifを行うのであれば、次の様になります。

if(条件, Then, if(条件,Then,Else))

 

今回の場合は下記の通りになります。

LOAD
id,
Start_Day,
Login_Day,
if(Start_Day = Login_Day,'1','0') as New_Player,
if(Start_Day = Date(Login_Day - 1,'YYYY/MM/DD'),'1','0') as Played_Yesterday,
if(Start_Day >= '2021/11/10' and Start_Day < '2021/12/01', '1',
	if(Start_Day >= '2021/12/01' and Start_Day <= '2022/01/01', '2',
    	if(Start_Day >= '2022/01/01' and Start_Day <= '2022/04/01', '3','4'))) as Seasons
FROM [lib://DataFiles/Prod_Login_Startday_List.qvd]
(qvd);

 

sahideki200701
Contributor
Contributor
Author

初歩的な件で親切にご教示いただき、誠にありがとうございました。
実際のアプリ内>ロードスクリプトに組み込んで動作できました。
Excel関数のように()で括って多重にする必要があるんですね。勉強になります。