Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
C# 如何显示该测验引擎每月和每年的参与者总数和测验次数?_C#_Asp.net_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

C# 如何显示该测验引擎每月和每年的参与者总数和测验次数?

C# 如何显示该测验引擎每月和每年的参与者总数和测验次数?,c#,asp.net,sql-server,sql-server-2008-r2,C#,Asp.net,Sql Server,Sql Server 2008 R2,我正在开发一个简单的web应用程序,为用户提供测验。由于我是ASP.NET世界的新手,我将在ASP.NET网站上学习如何构建测验引擎视频系列。我的数据库设计与这些视频中使用的设计类似。 这是: [^] 我一切正常,但我现在想开发一个查询,帮助我向管理员显示统计信息,显示: 每个月的参与者总数和参加的测验 每年的参与者总数和参加的测验 系统中的测验总数 为了澄清最后一点,我希望管理员看到以下内容: 参与者的月数#参加测验的月数# 11月15日至6日 十月十日至九日 另一个例子: 参与者年份#参加测

我正在开发一个简单的web应用程序,为用户提供测验。由于我是ASP.NET世界的新手,我将在ASP.NET网站上学习如何构建测验引擎视频系列。我的数据库设计与这些视频中使用的设计类似。 这是: [^]

我一切正常,但我现在想开发一个查询,帮助我向管理员显示统计信息,显示:

  • 每个月的参与者总数和参加的测验
  • 每年的参与者总数和参加的测验
  • 系统中的测验总数
  • 为了澄清最后一点,我希望管理员看到以下内容:

    参与者的月数#参加测验的月数# 11月15日至6日 十月十日至九日

    另一个例子:

    参与者年份#参加测验的次数# 2011 150 89

    我认为,了解系统的使用情况以及向管理层展示系统在公司中的效率非常有用

    数据库的架构:

    CREATE TABLE [dbo].[Quiz](
            [QuizID] [int] IDENTITY(1,1) NOT NULL,
            [Title] [varchar](max) NOT NULL,
            [Description] [varchar](max) NULL,
         CONSTRAINT [PK_Quiz] PRIMARY KEY CLUSTERED 
        (
            [QuizID] ASC
        )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
        ) ON [PRIMARY]
        GO
        SET ANSI_PADDING OFF
        GO
        SET IDENTITY_INSERT [dbo].[Quiz] ON
        INSERT [dbo].[Quiz] ([QuizID], [Title], [Description]) VALUES (6, N'Safety', N'General Safety Test')
        INSERT [dbo].[Quiz] ([QuizID], [Title], [Description]) VALUES (7, N'my title', N'my description')
        INSERT [dbo].[Quiz] ([QuizID], [Title], [Description]) VALUES (9, N'General Safety Quiz2', N'Testing')
        INSERT [dbo].[Quiz] ([QuizID], [Title], [Description]) VALUES (10, N'General Safety Quiz3', N'Testing #2')
        SET IDENTITY_INSERT [dbo].[Quiz] OFF
    
    
        /****** Object:  Table [dbo].[Question]    Script Date: 11/17/2011 00:44:38 ******/
    
        CREATE TABLE [dbo].[Question](
            [QuestionID] [int] IDENTITY(1,1) NOT NULL,
            [Question] [varchar](max) NOT NULL,
            [Answer1] [varchar](max) NOT NULL,
            [Answer2] [varchar](max) NOT NULL,
            [Answer3] [varchar](max) NOT NULL,
            [Answer4] [varchar](max) NOT NULL,
            [CorrectAnswer] [tinyint] NOT NULL,
            [AnswerExplanation] [varchar](max) NULL,
            [QuestionOrder] [tinyint] NOT NULL,
            [QuizID] [int] NOT NULL,
         CONSTRAINT [PK_Question] PRIMARY KEY CLUSTERED 
        (
            [QuestionID] ASC
        )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
        ) ON [PRIMARY]
        GO
        SET ANSI_PADDING OFF
        GO
        SET IDENTITY_INSERT [dbo].[Question] ON
        INSERT [dbo].[Question] ([QuestionID], [Question], [Answer1], [Answer2], [Answer3], [Answer4], [CorrectAnswer], [AnswerExplanation], [QuestionOrder], [QuizID]) VALUES (4, N'What is your name?', N'Mohammed ', N'Ali', N'Hassan', N'Husain', 1, N'My Name', 1, 6)
        INSERT [dbo].[Question] ([QuestionID], [Question], [Answer1], [Answer2], [Answer3], [Answer4], [CorrectAnswer], [AnswerExplanation], [QuestionOrder], [QuizID]) VALUES (7, N'What is the definition of Safety?', N'Being Safe', N'Being in danger', N'Be careful', N'be careless', 1, N'Nothing', 1, 9)
        INSERT [dbo].[Question] ([QuestionID], [Question], [Answer1], [Answer2], [Answer3], [Answer4], [CorrectAnswer], [AnswerExplanation], [QuestionOrder], [QuizID]) VALUES (8, N'What is the definition of Safety? ', N'Being Safe', N'Being Careless', N'Being Careful', N'Being in Dangerous', 1, N'Nothing to say', 1, 10)
        SET IDENTITY_INSERT [dbo].[Question] OFF
        /****** Object:  Table [dbo].[UserQuiz]    Script Date: 11/17/2011 00:44:38 ******/
        CREATE TABLE [dbo].[UserQuiz](
            [UserQuizID] [int] NULL,
            [QuizID] [int] NOT NULL,
            [DateTimeComplete] [smalldatetime] NOT NULL,
            [Score] [tinyint] NOT NULL,
            [Username] [nvarchar](256) NOT NULL
        ) ON [PRIMARY]
        GO
        INSERT [dbo].[UserQuiz] ([UserQuizID], [QuizID], [DateTimeComplete], [Score], [Username]) VALUES (NULL, 6, CAST(0x9F8F02D8 AS SmallDateTime), 100, N'SMP\ALMARHMS')
        INSERT [dbo].[UserQuiz] ([UserQuizID], [QuizID], [DateTimeComplete], [Score], [Username]) VALUES (NULL, 6, CAST(0x9F8F02E3 AS SmallDateTime), 50, N'SMP\ALMARHMS')
        INSERT [dbo].[UserQuiz] ([UserQuizID], [QuizID], [DateTimeComplete], [Score], [Username]) VALUES (NULL, 6, CAST(0x9F8F0333 AS SmallDateTime), 50, N'SMP\ALMARHMS')
        INSERT [dbo].[UserQuiz] ([UserQuizID], [QuizID], [DateTimeComplete], [Score], [Username]) VALUES (NULL, 7, CAST(0x9F8F0335 AS SmallDateTime), 100, N'SMP\ALMARHMS')
    
    在这个伟大社区的一位成员的帮助下,我提出了一个查询,显示了每个测验的参与者人数。以下是查询:

    SELECT
    (SELECT COUNT(DISTINCT Q.UserName)  
     FROM dbo.UserQuiz Q  
     WHERE DateTimeComplete >= DATEADD(dd, -7, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)))
     as ParticipantsLast7Days,
    (SELECT COUNT(DISTINCT Q.UserName)  
     FROM dbo.UserQuiz Q  
     WHERE DateTimeComplete >= DATEADD(dd, -30, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)))
     as ParticipantsLast30Days,
    (SELECT COUNT(Q.QuizID)  
     FROM dbo.UserQuiz Q  
     WHERE Q.DateTimeComplete >= DATEADD(dd, -7, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)))
     as QuizzesLast7Days,
    (SELECT COUNT(Q.QuizID)  
     FROM dbo.UserQuiz Q  
     WHERE Q.DateTimeComplete >= DATEADD(dd, -30, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)))
     as QuizzesLast30Days
    
    现在我需要修改它,或者提出一个新的查询,给出上面两点。我该怎么做呢?

    一个月的参与者人数#参加的测验人数#

    select datename(month, datetimecomplete)+' '+ cast(count(distinct username) as varchar) +' '+ cast(count(distinct quizid) as varchar) Quizzes from userquiz group by datename(month, datetimecomplete)
    
    select datename(year, datetimecomplete)+' '+ cast(count(distinct username) as varchar) +' '+ cast(count(distinct quizid) as varchar) Quizzes from userquiz group by datename(year, datetimecomplete)
    
    参与者年份#参加测验的次数#

    select datename(month, datetimecomplete)+' '+ cast(count(distinct username) as varchar) +' '+ cast(count(distinct quizid) as varchar) Quizzes from userquiz group by datename(month, datetimecomplete)
    
    select datename(year, datetimecomplete)+' '+ cast(count(distinct username) as varchar) +' '+ cast(count(distinct quizid) as varchar) Quizzes from userquiz group by datename(year, datetimecomplete)