2016-10-17 59 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 - 太棒了,很高興聽到 –