私のデータベースには、日付に基づいて会計年度、期間などを提供するカレンダーテーブルがあります(SQLAssistantでTeradataを使用)。昨年のデータをSQLクエリで取得しようとしていますが、where句に-1を追加するだけで簡単だと思っていましたが、うまくいきません。会計年度が変更されたときにクエリを更新することを忘れないように、日付を厳密にコーディングする必要はありません。カレンダーテーブルSQLで昨年の会計年度データを検索するSQL
動作し、すべての会計年度の売上データを持ち帰る簡体問い合わせは:
Select s.sales, c.fiscalPeriod, c.fiscalYear
from sales s
join calendar c
on s.salesDate = c.calDate
私が試したが、それは何のデータを戻すんだもの:
Select s.sales, c.fiscalPeriod, c.fiscalYear
from sales s
join calendar c
on s.salesDate = c.calDate
where c.fiscalYear=c.fiscalYear-1
そして、この:
Select s.sales, c.fiscalPeriod, c.fiscalYear, c.fiscalYear-1 AS lastYear
from sales s
join calendar c
on s.salesDate = c.calDate
where c.fiscalYear=lastYear
おそらく明らかですが、私はかなり新しいSQLです。どんな助けでも大歓迎です。
私はTeradataを知りませんが、必要なものは現在の日付を返す関数です。列自体を比較することは意味をなさない。 – shawnt00
私たちの会計年度は暦年(3月-2月)に基づいていないので、現在の日付を引いて会計年度として設定するために1年を引くと、正確な部分ではありません。または、現在の日付を別の方法で使用することを提案しましたか? – smms
それでも現在の日付が必要です。それを使って今月を取得し、会計年度を決定します。例: 'year(現在の日付) - 1から9の間の月(現在の日付)、次に1 else else end' – shawnt00