2011-04-14 50 views
0

我有一个表格,并记录了银行交易。我想在一个月内只提出一次交易的用户。这意味着他们的交易在那个月计数== 1。从一个月只出现一次的数据库中挑选数据

我记录CARD_NUMBER,时间戳等。

+1

尝试提供你的数据库布局,并且你的代码到目前为止 – BugFinder 2011-04-14 07:07:00

+1

试图给我们一个表定义和...共事 – Marco 2011-04-14 07:07:16

回答

3
SELECT * 
FROM transactions 
GROUP BY card_number, month 
HAVING COUNT(card_number) = 1 
+1

你错过了月= XXX – Marco 2011-04-14 07:08:00

+0

,我不认为他的要求说出来必须仅限于特定月份。我将其解释为显示所有交易,只有每月等于1的计数,所以我支持我的答案。 – Wes 2011-04-14 07:20:38

+0

@Wes:我不知道,也许你是对的。问题是不是“这么清楚”关于这个:) – Marco 2011-04-14 07:23:51

0

入住这

select  Card_Number, 
      DATEPART(m, [TimeStamp])MonthNo, 
      COUNT(1) TxnCount 
from  Transactions 
group by Card_Number, 
      DATEPART(m, [TimeStamp]) 
having  COUNT(1)=1 

我假设你的表结构是一样的财产以后在下面。

Card_Number int, 
TimeStamp datetime 
+0

-1在你的答案中使用选项卡而不是格式化为代码 – Wes 2011-04-14 07:34:16

+0

也不需要在选择中具有'count(')txncount'。相反,只需要说''1'TxnCount',因为count总是相同的,所以为什么要用一个函数来产生结果呢? – Wes 2011-04-14 07:35:30

+0

@Wes:我编辑了他的代码,但我认为有人不喜欢我的编辑。如果是这样-1 – Marco 2011-04-14 07:36:22

相关问题