という変数を宣言しようとしていますが、その変数は(end_date - start_date)
です。次に、変数NEW_VARIABLE
を間隔(date1 + NEW_VARIABLE + interval '1 days')
として使用します。SELECTステートメントで変数を宣言する
CREATE TEMPORARY TABLE tmp1_variables AS (
SELECT
'2016-10-29'::date as start_date,
dateadd(day,-10,getdate())::date as end_date,
'2015-10-31'::date as date1
(end_date - start_date) as NEW_VARIABLE
);
DROP TABLE IF EXISTS tmp_tbl1;
CREATE TEMPORARY TABLE tmp_tbl1 (cobrand_id int, xsum numeric(30,15));
insert into tmp_tbl1 (cobrand_id, xsum)
select q1.cobrand_id, q1.a/q2.d as xsum from (
SELECT cobrand_id, sum(calc) AS a FROM jwn_calc s, tmp1_variables
where s.optimized_transaction_date > start_date AND s.optimized_transaction_date <= end_date + interval '1 days' GROUP BY cobrand_id
) as q1
inner join (
SELECT cobrand_id AS c,
sum(CASE WHEN optimized_transaction_date > date1 AND optimized_transaction_date <= date1 + NEW_VARIABLE + interval '1 days' THEN Calc END)/
sum(CASE WHEN optimized_transaction_date > date1 AND optimized_transaction_date <= date1 + interval '91 days' THEN Calc END) AS d
FROM jwn_calc, tmp1_variables
GROUP BY cobrand_id
) as q2 on q1.cobrand_id = q2.c;
サンプルデータと望ましい結果は、あなたがしたいことを説明するのに不思議になります。 –
こんにちはGordon、私は望む結果を求めるのではなく、この構文を修正することを考えていました。同じselect文で変数end_dateとstart_dateを作成したとき、どうすれば(end_date - start_date)を変数として宣言できますか?これは可能ですか? – ZJAY