对不起,如果这是如此明显容易,但我是新来的!我试图添加另一个与语句的查询,工作完美的罚款,但休息时,我编辑它。
我正在尝试的查询是:
--- select the term name ---
with term_name as (select dfs.k_form_submission,
dfs.k_form,
dfs.k_district as "district_id",
dff.form_name,
ffr.question_response as "term",
dfs.submitted_at
from
prod_wh_pls.dim_pls_fa_forms dff
inner join
prod_wh_pls.dim_pls_fa_submissions dfs
on
dfs.k_form = dff.k_form
inner join
prod_wh_pls.fct_pls_fa_responses ffr
on
dfs.k_form_submission = ffr.k_form_submission
where
(dff.k_form = 423614 or dff.k_form = 423615 or dff.k_form = 423608 or dff.k_form = 423613 or dff.k_form = 423670 or dff.k_form = 423706)
and
(ffr.question_name = 'term' or ffr.question_name = 'session_name')
and
dfs.k_form_submission != 457891),
fixed_district as (
select case when ffr.question_response = '2103480' then '16f7e40689605582e8fcfe7bc52481c4' else dfs.k_district end as "k_district", ffr.question_response as "nces_id", ffr.k_form_submission
from
prod_wh_pls.fct_pls_fa_responses ffr
inner join
prod_wh_pls.dim_pls_fa_submissions dfs
on
ffr.k_form_submission = dfs.k_form_submission
where
(ffr.question_name) = 'nces_id' and (ffr.k_form = 423706))
--- final query ----
select
dfs.k_form_submission, dfs.k_form,
dfs.k_district as "district_id",
dff.form_name,
ffr.question_name,
ffr.question_response,
dfs.submitted_at,
(case when dfs.submitted_at < date '07-15-2022' then '2021-2022'
else tna.term end) as "term",
dfs.is_latest_submission,
dfs.completion_time
from
prod_wh_pls.dim_pls_fa_forms dff
inner join
prod_wh_pls.dim_pls_fa_submissions dfs
on
dfs.k_form = dff.k_form
inner join
prod_wh_pls.fct_pls_fa_responses ffr
on
dfs.k_form_submission = ffr.k_form_submission
left join
term_name tna
on
tna.k_form_submission = dfs.k_form_submission
where
(dff.k_form = 423614 or dff.k_form = 423615 or dff.k_form = 423608 or dff.k_form = 423613 or dff.k_form = 423670 or dff.k_form = 423706)
and
dfs.k_form_submission != 457891
and
dfs.k_district is not null
and
(dfs.completion_time not ilike '%day%' and dfs.completion_time not ilike '%hr%')
我知道“final query”后面的查询是不正确的--但是我甚至不能通过添加另一个“with”来进入下一部分的问题!我总是在--- final query---之前的最后一行得到“syntax error at end of input”。我该如何解决这个问题?
我试着重新排列WITH语句的顺序,但没有用。我试着编辑最后的查询代码部分,但什么也没有得到。太沮丧了
2条答案
按热度按时间afdcj2ne1#
查询似乎没问题,请添加分号(;)。如果您仍然得到此错误,请检查表名和列名。
如果你能提供任何dbfiddle链接就太好了。
我还对查询做了一些更改。请尝试以下操作:
jexiocij2#
下面是一些基于您的查询的反向工程表/列:https://dbfiddle.uk/Df99nCG7查询运行没有错误,但我不得不将硬编码的日期文字从DD-MM-YYYY更改为YYYY_MM_DD:
如果这不能解决问题,请检查我使用的DDL,它是否与您的真实的DDL有很大差异?也许用原始DDL替换我的DDL并重新运行。如果您仍然有错误,请提供该小提琴的URL。