选择带有双嵌套sql查询sybase的特定卡

布鲁斯·韦恩
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和昨天之间找不到

错误讯息

[','附近的语法不正确] [关键字'group'附近的语法不正确]

吉拉德·格林(Gilad Green)

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

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 
                 ...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章