t-sql - 计数 'Number of Transactions'

标签 t-sql reporting-services count ssrs-2008

我正在尝试获取“已发生的交易数量”的计数。 数据可能如下所示。

Cust #   Trans#  TransType  LineItem
42        5000      1         1
42        6000      1         1
42        6000      1         2
42        6000      2         1
42        6000      2         2
42        6000      2         3

任何给定的交易编号可以有多种交易类型。在此示例中,我期望返回的“交易数量”计数为“3”,因为 Trans# 5000 只有一种不同的 TransType,而 6000 有两种。如果我对 Trans# 进行不同计数,我会得到“2”,如果我只进行一次计数,我会得到“6”。

我尝试过使用:

COUNT(DISTINCT CASE Trans# WHEN ???? THEN 1 ELSE null END) AS [Num of Transactions],    

但我知道我的方向并不完全正确。如果有人能指出我正确的方向,我将不胜感激。

最佳答案

试试这个:-

with cte as
(
  Select Cust,Trans,row_number() over (partition by trans,TransType order by cust) rn
  from Sample
)
Select count(*) as TransCount from cte
where rn=1

SQL FIDDLE演示

关于t-sql - 计数 'Number of Transactions',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573621/

相关文章:

reporting-services - SSRS 图表中的百分比

reporting-services - 部署带有共享数据集的简单报表

sql-server-2008 - SSRS格式日期从YYYYMMDD到MM/DD/YYYY

python - 如何使用python计算csv文件分组项目中特定项目的出现次数

sql - 如果添加 WHERE 子句,LEFT JOIN 不返回任何结果?

sql - 条件 IF 中的查询速度变慢

c# - 如何使用 NHibernate QueryOver 计算给定出生日期的年龄

T-SQL:DBCC CHECKCONTRAINTS 之后有什么办法回滚吗?

mysql - 获取分组计数,但仍显示mysql中的所有记录

MySQL:在 SELECT 语句中使用 COUNT 函数