2つのテーブルを結合しました。1つのテーブルにはすべての値(+/-量)があり、もう1つのテーブルには主にディメンションデータがあります。参加したら、特定の年に与えられたすべての負の値と正の値を合計するクエリを実行したいと思いました。
3行目で問題が発生しているようです。何かご意見は?
select sum(sales_amount)
from salesInfo s inner joint dimInfo d
where sales_amount <0 and year = '2019';
3行目にエラーがスローされたため、クエリが生成されていません。
エラー-ORA-00905:キーワード00905がありません。00000-「キーワードがありません」
このような結合をクロス結合と同等に扱う他のデータベースダイアレクトとは異なりON
、OracleSQLでは許可されていない句が欠落していることが原因である可能性がありINNER JOIN
ます。
または、Oracleを使用してNATURAL JOIN
、テーブル間で名前付き列を照合することで結合することもできます。
from salesInfo s natural join dimInfo d
どちらの方法でも、条件付き集計を実行し、年ごとにグループ化することもできます。
select year,
sum(case when sales_amount < 0 then sales_amount end) as negative_sales,
sum(case when sales_amount > 0 then sales_amount end) as positive_sales
from salesInfo s
inner join dimInfo d on s.some_id = d.some_id
group by year
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加