SQL query-недопустимое имя столбца и параметр - data.SE
Не программист, но с помощью data.stackexchange.com. я запрашиваю общедоступный проводник данных SE, и имена столбцов, которые я указываю, недопустимы. Кроме того, как указать Count (сообщения) и Count (голоса)? Есть ли кто-нибудь, кто задавал вопросы data.se и знает ли схема БД, способная помочь мне исправить этот код?
Select Count (u.Id)
From Users u
Left Join Posts p on u.Id = p.OwnerUserId
Left join SuggestedEdits e on u.Id = e.OwnerUserId
left join Votes v on u.Id = v.UserId
WHERE ((u.CreationDate BETWEEN 'qwerty' AND 'qwerty')
AND (p.CreationDate BETWEEN 'qwerty' AND 'qwerty')
AND (p.ClosedDate is null)
OR (e.CreationDate BETWEEN 'qwerty' AND 'qwerty'))
AND Count (Posts) = x
OR Count (Votes) = y
Group by u.CreationDate, p.OwnerUserId, UserTypeId, u.DisplayName, p.CreationDate






Ответы - SQL query-недопустимое имя столбца и параметр - data.SE / SQL query - invalid column name and parameter - data.SE

27.09.2012 11:40:20
Вы попробуйте составить запрос вариант нашел здесь. Если вы нажмете эту ссылку, она покажет вам схему базы данных в правой части боковой панели.
Обратите внимание, что боковая панель может быть скрыта, просто нажмите на ссылку, чтобы показать ее снова. Это то, что тебе нужно?
РЕДАКТИРОВАТЬ
Я все еще не совсем уверен, что именно вы пытаетесь сделать. Если бы я был на вашем месте, я бы начал с запуска некоторых простых запросов к каждой отдельной таблице. Таким образом, вы можете увидеть, какие данные хранятся там.
Запустите этот запрос и проверьте результаты:
SELECT *
FROM Users
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 09:00:00'
Запустите этот запрос и проверьте результаты:
SELECT *
FROM Posts
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 08:10:00'
Запустите этот запрос и проверьте результаты:
SELECT *
FROM Votes
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 08:10:00'
Я не уверен, почему вы включили таблицу SuggestedEdits в свое соединение, поскольку она не кажется, что вы используете эту таблицу в другом месте. Так что оставь это.
Теперь, увидев, как выглядят данные, вы должны быть в состоянии собрать их вместе, чтобы найти то, что вам нужно. Чего я до сих пор не знаю? Надеюсь, что-то вроде этого поможет вам начать работу. Этот запрос вернет некоторые результаты, но я не уверен, что это то, что вам нужно.
SELECT Count(u.Id), Count(p.Id), Count(v.Id)
FROM Users u
LEFT JOIN Posts p on u.Id = p.OwnerUserId
LEFT JOIN Votes v on u.Id = v.UserId
WHERE u.CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 09:00:00'
GROUP BY u.CreationDate, p.OwnerUserId, v.VoteTypeId, u.DisplayName, p.CreationDate