“我该怎么做?”;“崩溃”;Access 2010中TSQL的以下列数据?
在进行研究时,我没有发现类似的问题(在Access 2010和TSQL的背景下) 挑战:目前,我的数据看起来像下面的状态1。在状态#1中,有重复的行,唯一的区别是它们对三个特定字段(OfferMembership、Hasseing、QuietArea)具有不同的字段/列值 Desire:我想按PlaceID和年份“折叠”行,只需为每行的每个字段中存在的Y的数量生成一个不同的计数。我已经生成了样本数据来表示我想要的结果 我的数据目前如下所示:“我该怎么做?”;“崩溃”;Access 2010中TSQL的以下列数据?,sql,sql-server,tsql,ms-access,distinct,Sql,Sql Server,Tsql,Ms Access,Distinct,在进行研究时,我没有发现类似的问题(在Access 2010和TSQL的背景下) 挑战:目前,我的数据看起来像下面的状态1。在状态#1中,有重复的行,唯一的区别是它们对三个特定字段(OfferMembership、Hasseing、QuietArea)具有不同的字段/列值 Desire:我想按PlaceID和年份“折叠”行,只需为每行的每个字段中存在的Y的数量生成一个不同的计数。我已经生成了样本数据来表示我想要的结果 我的数据目前如下所示: State #1 Row | Year | Plac
State #1
Row | Year | PlaceID | OffersMembership | HasSeating | QuietArea
001 2011 Park Y Y Y
002 2011 Park Y N N
003 2011 Library Y Y Y
004 2011 Library N Y N
005 2011 Museum Y N
006 2011 Museum Y Y Y
006 2011 MovieTheater Y N
007 2012 Park Y Y Y
008 2012 Park N
我希望我的数据看起来像什么:
State #2
Row | Year | PlaceID | OffersMembership "Y"| HasSeating "Y"| QuietArea "Y"
001 2011 Park 1 1 1
002 2011 Library 1 1 1
003 2011 Museum 1 1 1
004 2011 Movietheater 1
004 2012 Park 1 1 1
注:
1) 我在Access 2010中使用TSQL,因为我正在运行命中SQL Server表的传递查询
2) 是的,状态为#1的数据中存在“空白”单元格 您可以使用简单的分组方式来折叠数据。我排除了行列,因为我假设它只是一个行号占位符
SELECT [Year]
,PlaceID
,COUNT(CASE OffersMembership WHEN 'Y' THEN 1 ELSE 0 END) AS OffersMembership
,COUNT(CASE HasSeating WHEN 'Y' THEN 1 ELSE 0 END) AS HasSeating
,COUNT(CASE QuietArea WHEN 'Y' THEN 1 ELSE 0 END) AS QuietArea
FROM MyTable t
GROUP BY t.[Year]
,PlaceID
注意:上面的示例查询尚未执行