Vì vậy, đây là câu hỏi của tôiSử dụng kết quả SELECT trong một CHỌN
SELECT
*
FROM
Score AS NewScores
WHERE
InsertedDate >= DATEADD(mm, -3, GETDATE());
SELECT
ROW_NUMBER() OVER(ORDER BY NETT) AS Rank,
Name,
FlagImg,
Nett,
Rounds
FROM (
SELECT
Members.FirstName + ' ' + Members.LastName AS Name,
CASE
WHEN MenuCountry.ImgURL IS NULL THEN
'~/images/flags/ismygolf.png'
ELSE
MenuCountry.ImgURL
END AS FlagImg,
AVG(CAST(NewScores.NetScore AS DECIMAL(18, 4))) AS Nett,
COUNT(Score.ScoreID) AS Rounds
FROM
Members
INNER JOIN
Score
ON Members.MemberID = Score.MemberID
LEFT OUTER JOIN MenuCountry
ON Members.Country = MenuCountry.ID
WHERE
Members.Status = 1
GROUP BY
Members.FirstName + ' ' + Members.LastName,
MenuCountry.ImgURL
) AS Dertbl
ORDER BY;
Truy vấn là để đưa ra một kết quả thiết lập cho một bảng dẫn dựa GridView và những gì tôi muốn là để chỉ nhận được mức trung bình của Điểm đó là ít hơn 3 tháng tuổi. Tôi có điều này trong 2 phần như bạn có thể thấy và rõ ràng là nó đưa ra một lỗi như thế này.
Msg 4104, Level 16, State 1, Line 2
Từ định đa phần "
NewScores.NetScore
" không thể bị ràng buộc.
Đó là vì điều này AVG(CAST(NewScores.NetScore AS DECIMAL(18, 4))) AS Nett
Làm thế nào để làm cho nó để tôi có thể sử dụng NewScores
có vì vậy tôi chỉ nhận được mức trung bình của điểm số dưới 3 tháng tuổi?
EDIT: Sử dụng các câu trả lời người cung cấp tôi đã giải quyết nó bằng cách sử dụng một tham gia tại địa điểm chính xác và đây là truy vấn chính xác:
SELECT ROW_NUMBER() OVER(ORDER BY NETT) AS Rank, Name, FlagImg, Nett, Rounds FROM (SELECT Members.FirstName + ' ' + Members.LastName AS Name, CASE WHEN MenuCountry.ImgURL IS NULL THEN '~/images/flags/ismygolf.png' ELSE MenuCountry.ImgURL END AS FlagImg, AVG(CAST(NewScores.NetScore AS DECIMAL(18, 4))) AS Nett, COUNT(NewScores.ScoreID) AS Rounds FROM Members INNER JOIN (SELECT * FROM Score WHERE InsertedDate >= DATEADD(mm, -5, GETDATE())) NewScores ON Members.MemberID = NewScores.MemberID LEFT OUTER JOIN MenuCountry ON Members.Country = MenuCountry.ID WHERE Members.Status = 1 GROUP BY Members.FirstName + ' ' + Members.LastName, MenuCountry.ImgURL) AS Dertbl ORDER BY Nett ASC
Tôi có thể thực hiện điều tương tự bằng cách thêm vào mệnh đề WHERE gần kết thúc với điều kiện ngày nhưng tôi cũng muốn biết cách thực hiện điều này bằng bí danh chọn. – Pandepic
bạn chưa tham gia bảng 'NewScores' đó là lý do tại sao cột' NetScore' không thể được định vị. –
Vâng tôi biết phần đó, tôi đang cố gắng tìm ra cách chính xác để tham gia nó trong truy vấn này để nó hoạt động theo cách tôi muốn, các kết nối mà tôi đã thử cho đến nay đã thất bại. – Pandepic