0

簡単なクエリがあります:

SELECT ((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) AS "days"
FROM "negotiations"."addon" WHERE (days <= 72)

しかし、それを実行すると、エラーが発生します:列'日'は存在しません。

どうすれば修正できますか?

4

2 に答える 2

0

代わりにこれを試してください:

SELECT * 
FROM
(
   SELECT
     ((interest_step / 12) * 365 + (MOD(interest_step, 12) * 30)) AS "days" 
   FROM "negotiations"."addon" 
) t
WHERE (days <= 72)

これは、WHERE句が句の前に実行されるSELECTため、エイリアスが表示されないためですdays。サブクエリで囲む必要があります。

于 2012-11-12T15:35:14.690 に答える
0

列エイリアスを生成した同じ 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)
于 2012-11-12T15:36:36.173 に答える