Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪些SQL查询有助于分析成员基础?_Sql_Sql Server_Sql Server 2000 - Fatal编程技术网

哪些SQL查询有助于分析成员基础?

哪些SQL查询有助于分析成员基础?,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,在我们的体育中心,我想分析一下我们会员的订阅数量和类型,但我对确切的SQL查询有困难 “订阅”是一种入场证,可让您进入我们体育中心的特定活动。它们有一个开始和结束日期,表示它们的有效期。他们有相关的活动(如“健身房”、“游泳”、“团体健身”、“攀岩”等) 一个成员可以有多个订阅。通常,其中一个将在购买下一个之前过期,但它们可以有两个(或更多)有效(或当前)订阅 稍微简化一下,我们有以下两个表: Members - stores a member's data, has these columns

在我们的体育中心,我想分析一下我们会员的订阅数量和类型,但我对确切的SQL查询有困难

“订阅”是一种入场证,可让您进入我们体育中心的特定活动。它们有一个开始和结束日期,表示它们的有效期。他们有相关的活动(如“健身房”、“游泳”、“团体健身”、“攀岩”等)

一个成员可以有多个订阅。通常,其中一个将在购买下一个之前过期,但它们可以有两个(或更多)有效(或当前)订阅

稍微简化一下,我们有以下两个表:

Members - stores a member's data, has these columns ID (int) - unique ID for a member Name (varchar) - the member's name Gender (varchar) - the member's gender NumGym (int) - number of valid gym passes a member has (derived) 然而,它似乎没有产生正确的结果(基于我们对会员的理解和一些手工计算)

由于无法上班,我还没有试过

有没有关于产生我想要的内容的查询的建议?

1。目前有多少会员持有有效的“健身房”通行证? 使用:

您可以调用以获取当前日期(和时间),而不是构造日期

2.在给定的一天我有多少活跃会员(即有多少有效通行证) 使用:


目前有多少会员持有有效的“健身房”通行证

SELECT COUNT(*)
    FROM Subscriptions
    WHERE CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME) BETWEEN StartDate AND EndDate
          AND TypeID = 'Gym'
您应该在这里截断
GETDATE()
,因为您想包括我所理解的
EndDate

“有多少会员?”与“有多少通行证”不同

那么“有多少成员?”:

SELECT COUNT(DISTINCT MemberID)
    FROM Subscriptions
    WHERE @Date BETWEEN StartDate AND EndDate
SELECT COUNT(*)
    FROM Subscriptions
    WHERE @Date BETWEEN StartDate AND EndDate
和“多少次传球?”:

SELECT COUNT(DISTINCT MemberID)
    FROM Subscriptions
    WHERE @Date BETWEEN StartDate AND EndDate
SELECT COUNT(*)
    FROM Subscriptions
    WHERE @Date BETWEEN StartDate AND EndDate
SELECT COUNT(DISTINCT MemberID)
    FROM Subscriptions
    WHERE @Date BETWEEN StartDate AND EndDate
SELECT COUNT(*)
    FROM Subscriptions
    WHERE @Date BETWEEN StartDate AND EndDate