簡単なクエリがあります:
SELECT ((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) AS "days"
FROM "negotiations"."addon" WHERE (days <= 72)
しかし、それを実行すると、エラーが発生します:列'日'は存在しません。
どうすれば修正できますか?
簡単なクエリがあります:
SELECT ((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) AS "days"
FROM "negotiations"."addon" WHERE (days <= 72)
しかし、それを実行すると、エラーが発生します:列'日'は存在しません。
どうすれば修正できますか?
代わりにこれを試してください:
SELECT *
FROM
(
SELECT
((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) AS "days"
FROM "negotiations"."addon"
) t
WHERE (days <= 72)
これは、WHERE
句が句の前に実行されるSELECT
ため、エイリアスが表示されないためですdays
。サブクエリで囲む必要があります。
列エイリアスを生成した同じ select ステートメント内で参照することはできません。これには、次の 2 つの選択肢があります。
SELECT ((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) AS "days"
FROM "negotiations"."addon"
WHERE (((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) <= 72)
また
SELECT *
FROM
(
SELECT ((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) AS "days"
FROM "negotiations"."addon"
) A
WHERE (days <= 72)