agas22
agas22

Reputation: 1

SQL Running in Aginity but Rejected as Custom Query in Tableau 10.1

I'm able to run the query below in Aginity SQL editor and get results against Redshift but when I try to use this same query as custom sql to generate a Tableau report I get an error that says "Redshift ODBS error trying to execute SQL.Syntax error at or near line 23; and trans_amt <=85;"

WITH cons_dedup AS
(SELECT DISTINCT * FROM shop.consumer)
SELECT 
MAX(trans_amt) OVER (PARTITION BY trans.cardid) as max_transaction_for_card,
85 as full_tank,
trans_amt/MAX(trans_amt) OVER (PARTITION BY trans.cardid) as pct_of_max_transaction_for_card,
(CASE WHEN trans_amt/MAX(85) OVER (PARTITION BY trans.cardid) >= .6 THEN 'A'
WHEN trans_amt/MAX(85) OVER (PARTITION BY trans.cardid) >= .2 and trans_amt/MAX(85) OVER (PARTITION BY trans.cardid) <.6 THEN 'B'
WHEN trans_amt/MAX(85) OVER (PARTITION BY trans.cardid) >= 0 and trans_amt/MAX(85) OVER (PARTITION BY trans.cardid) <.2 THEN 'C'
ELSE 'Unknown' END) AS trans_category,
COUNT(*) OVER (PARTITION by trans.cardid) as cnt_trans_for_card,
MIN(transaction_date) OVER (PARTITION BY trans.cardid) as timestamp_of_first_trans_for_card,
LAG(transaction_date, 1) OVER (PARTITION BY trans.cardid ORDER BY transaction_date) as prev_trans_timestamp_for_card,
LEAD(transaction_date, 1) OVER (PARTITION BY trans.cardid ORDER BY transaction_date) as next_trans_timestamp_for_card,
DATEDIFF(day, LAG(transaction_date, 1) OVER (PARTITION BY trans.cardid ORDER BY transaction_date), transaction_date) as days_since_last_trans_for_card,
DATEDIFF(day, transaction_date, LEAD(transaction_date, 1) OVER (PARTITION BY trans.cardid ORDER BY transaction_date)) as days_until_next_trans_for_card,
DATEDIFF(day, transaction_date, MIN(transaction_date) OVER (PARTITION BY trans.cardid)) as days_since_first_trans,
trans.*,
cons.fullname 
FROM x.transaction trans
INNER JOIN cons_dedup cons
ON trans.cardid = cons.cardid
WHERE transaction_desc LIKE 'Transaction Approved (Pre-authorization Advice%'
AND cons.fullname NOT IN ('SYZ', 'TTT')
AND trans_amt <= 85 and trans_amt >= 3;

Upvotes: 0

Views: 127

Answers (1)

Vishal Gupta
Vishal Gupta

Reputation: 326

Remove Terminator from Query (; in End)

Upvotes: 1

Related Questions