2016-10-17 61 views
0
SELECT card_num, 
     COUNT(merchant_code) 
from e_transaction 
where trans_date between '20161017 00:00' and '20161017 23:59' 
and channelid='02' 
and trans_code='P' 
and card_num in (select card_num, 
         sum(trans_amount) 
       from e_transaction 
       where trans_date between '20161017 00:00' and '20161017 23:59' 
       and channelid='02' 
       and trans_code='T' 
       and card_num not in (select card_num 
             from e_transaction 
             where trans_date between '20160724 00:00' and '20161016 23:59') 
       group by card_num 
       having sum(trans_amount) > 100000) 
group by card_num 
having count (merchant_code) > 1 

我不断收到此查询的语法错误,但似乎无法找到错误的位置。我想阀芯与同一merchant_code多个card_num今天与trans_amount大于100000,20160724和昨天之间未发现使用双重嵌套的sql查询选择特定的卡片sybase

错误信息

[附近有语法错误“”] [语法不正确的关键字附近 'group']

回答

0

正确格式化查询后,很容易发现问题。在你的第一个嵌套选择你写道:

and card_num in (select card_num, 
         sum(trans_amount) 
       from e_transaction 
       ...) 

in期待一列,但你的嵌套查询是给二。您只需从嵌套选择中删除sum(trans_amount),如下所示:

and card_num in (select card_num 
       from e_transaction 
       ...) 
+0

谢谢吉拉德。它现在运行良好 – brucewayne

+0

@brucewayne - 太棒了,很高兴听到 –