#c# #asp.net #asp.net-charts
#c# #asp.net #asp.net-диаграммы
Вопрос:
Я создаю программу для создания викторин в своем веб-приложении. База данных состоит из следующих таблиц:
- Таблица ВИКТОРИНЫ: Идентификатор викторины, заголовок, описание
- Таблица пользовательского опроса: идентификатор пользователя, QuizID, дата завершения, оценка, имя пользователя
Теперь я хочу разработать диаграмму, в которой отображается заголовок викторины с количеством пользователей, прошедших каждый из этих тестов, но я не знаю как. Я пытаюсь получить хороший запрос для этого, но я не знаю как.
Я использую SqlDataSource для доступа к данным в базе данных.
Пожалуйста, помогите мне.
Комментарии:
1. В SQL? В конкретной среде ORM? Как вы получаете доступ к данным?
2. Я использую .NET Framework 4.0 (ASP.NET webforms) и Visual Studio 2010
Ответ №1:
В SQL это было бы что-то вроде
SELECT Q.QuizID, Q.Title, count(uq.*) as Users
FROM UserQuiz UQ
JOIN Quiz Q ON Q.QuizID = UQ.QuizID
GROUP BY Q.QuizID, Q.Title
или без псевдонимов таблиц, Q
и UQ
это было бы
SELECT Quiz.QuizID, Title, count(*) as Users
FROM UserQuiz
JOIN Quiz ON Quiz.QuizID = UserQuiz.QuizID
GROUP BY Quiz.QuizID, Title
использование полных имен таблиц для различения двух столбцов, называемых QuizID.
Комментарии:
1. Не могли бы вы, пожалуйста, упростить свой запрос? Я не понял этого, особенно букв Q, UQ, uq.*
2. Это имена таблиц псевдонимов:
FROM UserQuiz UQ
означает использоватьUQ
в качестве псевдонима дляUserQuiz
и аналогичноQ
дляQuiz
. Вам нужны псевдонимы, чтобы различать два вызываемых столбца, потому что у вас есть столбец с именем QuizID в каждой таблице.
Ответ №2:
Как насчет того, чтобы попробовать что-то вроде этого
SELECT Title, count(UserQuizID) as usercount
FROM quiz a
JOIN userquiz b on a.quizid = b.quizid
GROUP BY Title
Заголовок будет вашим XValueMember
и количеством пользователей YValueMember
для серии.
Комментарии:
1. Я попытался выполнить этот запрос в SQLServer Management Studio, но я получил сообщение об ошибке. Я не знаю, почему
2. @Rup Действительно должен быть … мой плохой