Хорошо, мне нужна помощь. Я обычно довольно хорошо разбираюсь в SQL-запросах, но этот сбивает меня с толку. Кстати, это не домашнее задание, это реальная ситуация в базе данных Access, и я написал требования ниже себя.
Вот мой макет стола. Это в Access 2007, если это имеет значение; Я пишу запрос с использованием SQL.
Id (primary key)
PersonID (foreign key)
EventDate
NumberOfCredits
SuperCredits (boolean)
Есть события, на которые люди ходят. Они могут заработать обычные кредиты или супер кредиты, или и то, и другое одновременно. Столбец SuperCredits имеет значение true, если строка представляет количество суперкредитов, заработанных на мероприятии, или false, если он представляет обычные кредиты.
Так, например, если есть событие, которое посещает человек 174, и он получает 3 обычных кредита и 1 супер кредит на этом событии, следующие две строки будут добавлены в таблицу:
ID PersonID EventDate NumberOfCredits SuperCredits
1 174 1/1/2010 3 false
2 174 1/1/2010 1 true
Также возможно, что человек мог сделать две разные вещи на этом событии, поэтому может быть более двух столбцов для одного события, и это может выглядеть так:
ID PersonID EventDate NumberOfCredits SuperCredits
1 174 1/1/2010 1 false
2 174 1/1/2010 2 false
3 174 1/1/2010 1 true
Теперь мы хотим распечатать отчет. Здесь будут столбцы отчета:
PersonID
LastEventDate
NumberOfNormalCredits
NumberOfSuperCredits
В отчете будет один ряд на человека. В этой строке будет показано последнее событие, которое посетил человек, а также обычные и супер кредиты, полученные этим человеком.
Я прошу вас написать или помочь мне написать SQL-запрос для выбора данных, GROUP BY и SUM () и еще много чего. Или, дайте мне знать, если это для какая-то причина невозможна, и как организовать мои данные, чтобы сделать это возможным.
Это очень запутанно, и я понимаю, если вы не потратите время, чтобы разобраться с этим. Я пытался максимально упростить его, но определенно задаю любые вопросы, если вы дадите ему шанс и нуждаетесь в разъяснении. Я попытаюсь понять это, но мне очень тяжело с этим, это группировка вне моего опыта ...