【问题标题】:How to count matching records using a subquery in C# TableAdapter wizard如何在 C# TableAdapter 向导中使用子查询计算匹配记录
【发布时间】:2019-04-30 12:14:29
【问题描述】:

我有两张歌曲表。主表有一个ID 列和描述歌曲的各种列。第二张桌子有播放列表,包括来自主桌子的IDs。

因此,两个表之间存在1 to many 关系。

我需要一个查询来返回主表中的所有数据,其中有一列包含每首歌曲在播放列表中的使用次数。

我在 Visual Studio 的 TableAdapter 配置向导中尝试了以下 SQL 查询,其中包含计数的子查询,但出现错误

SELECT 子句缺失或不完整
SELECT SongID, Title, (
    COUNT(SongQueues.SongQueueSongID) 
    FROM SongQueues 
    WHERE SongQueues.SongQueueSongID = Songs.SongID
) AS PlayCount
FROM Songs

我希望结果是:

1 成像 5;

2 混水桥 9; ...等

【问题讨论】:

标签: c# sql subquery


【解决方案1】:
SELECT SongID, Title, COUNT(SongID) AS PlayCount
FROM Songs 
INNER JOIN SongQueues ON Songs.SongID = SongQueues.SongQueueSongID

字段不明确是我的假设

SELECT Songs.SongID, Songs.Title, (
    COUNT(SongQueues.SongQueueSongID) 
    FROM SongQueues WHERE SongQueues.SongQueueSongID = Songs.SongID
) AS PlayCount
FROM Songs

【讨论】:

  • 几乎完美 - 我必须添加 'GROUP BY Songs.SongID, Songs.Title' 才能使其工作,并改为 'Count' 子 ID。所以这对我有用: SELECT Songs.SongID, Songs.Title, COUNT(SongQueues.SongQueueSongID) AS PlayCount FROM (Songs LEFT OUTER JOIN SongQueues ON Songs.SongID = SongQueues.SongQueueSongID) GROUP BY Songs.SongID, Songs.Title非常感谢。
猜你喜欢
  • 2011-01-23
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 2013-07-26
相关资源
最近更新 更多