2012-09-27 50 views
3

不是程序員,而是使用data.stackexchange.com。我在查詢公共SE數據資源管理器,我指定的列名是無效的。另外,如何指定計數(帖子)和計數(投票)? 是否有人查詢過data.se並知道數據庫模式能夠幫助我更正此代碼?SQL查詢 - 無效的列名稱和參數 - 數據.ES

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 
+0

@ Miguel-F感謝您的提示。我沒有檢查邊欄,並使用有關架構的信息,但仍然無法使其工作。 –

+0

什麼不適合你?你的Select語句在哪裏? –

+0

我的select語句也不起作用。我想要符合這些標準的所有用戶標識的數量。對不起,我是一個noob。 –

回答

2

你有沒有嘗試撰寫查詢選項found here。如果您單擊該鏈接,它會在側邊欄的右側顯示數據庫架構。

請注意,側邊欄可以隱藏,只需點擊鏈接再次顯示。那是你需要的嗎?

編輯

我還沒有真正知道你正在嘗試做的完全一樣。如果我處於你的位置,我會首先對每個單獨的表執行一些簡單的查詢。這樣你就可以看到那裏存儲了什麼數據。

運行此查詢,並檢查了結果:

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表,因爲它沒有出現,你正在使用臨時表t表其他地方的表。所以把它放開。

現在看到數據看起來像什麼後,你應該能夠將它們拼湊在一起,找出你在做什麼。我仍然不知道?希望這樣的事情能幫助你開始。此查詢將返回一些結果,但我不確定它是什麼後。

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 
相關問題