質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

0回答

661閲覧

同じテーブル内でサブクエリした項目を別のテーブルで条件に使いたい

umeko79

総合スコア0

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2021/06/16 08:17

編集2021/06/16 23:19

前提・実現したいこと

3種類ある日付で判別して配信状況が分かるBIに使うデータマートを作りたい。

###質問の内容###
1.[test1]テーブルの利用開始日が計測日から何日前かを一つのカラムにする。riyo_keika
2.利用開始日が28日以内か区別する。
3.同じ[test1]テーブルを内部結合して56>=(計測日-利用開始日)>=29という感じに
riyo_keika の範囲を指定し区別したい。
4.その結合したテーブルに別のテーブル[test2]をLeftjoinして
[test1]の利用開始日から[test2]の配信日が何日後かを区別したい。

###途中までのソース###
select
c.juchu_id,
c.houjin_mei,
b.kaishinai_flg,
b.riyo_keika 
from
test2 as a
left join
(select
keisoku_dt - riyo_kaishi_dt as riyo_keika
,case
when riyo_kaishi_dt + 28 > keisoku_dt
then 1
else 0
end
as kaishinai_flg
,case
when riyo_keika between 29 and 56
then 1
else 0
end
as kaishinai_flg
from test1) as b
on c.juchu_id = a.juchu_id
inner join
(select
juchu_id
,keisoku_dt
from test1) as c
on c.juchu_id = b.juchu_id
;

###言語###
SQL
A5.SQL.Mk-2 64bit

###システム名###
redshift

試したこと

Where句、WITH句などサブクエリを試したが
使い方が間違っているのかエラーになる。

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/16 08:20

クエリー実行するデータベースシステム名(mysql, postgresqlなど)を質問タグや質問本文中に示しましょう。そして、A5:SQL mk-IIのせいでできないとかいう話題ではなさそうなので、A5:SQL mk-IIを質問タグにつけるのはやめたほうが良いかと。
退会済みユーザー

退会済みユーザー

2021/06/16 08:26

これ、動作するSQLですか? LEFT JOIN句あたり、ON句による結合条件の指定が足りていないような。一旦、ちゃんと動く段階のSQL文を示して、その状態にどう結合させたいか、何を加えたいのかを明瞭に。
umeko79

2021/06/16 08:43

m6uさま。 申し訳ありません。編集しました。 再度ちゃんと動く段階のSQLまで戻し書き直します。
Orlofsky

2021/06/16 10:34

ここの掲示板ではMarkdownの使い方を覚えてください。 コードは https://teratail.com/help/question-tips#questionTips3-7 の [コード] に修正してください。 SQLで使っているテーブルのCREATE TABLE文や何件かINSERT文も同じくMarkdownのコードで追記してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問