0
我的查詢出現問題,我讀了一些關於此的suggestions,但沒有運氣。如果使用INNER JOIN指定SELECT DISTINCT,則ORDER BY項必須出現在選擇列表中
我有3個表格,階段,階段和時間表。
附表列:
ID,級ID,PhaseId,持續時間,ScheduleType
舞臺列:
級ID,藝名
階段列:
PhaseId,PhaseName
這裏就是我試圖讓:
DECLARE @actual_startdate date = '2014-01-10'
SELECT
DISTINCT (C.PhaseName),
A.Duration,
@actual_startdate StartDate,
DATEADD(dd, A.Duration, @actual_startdate) EndDate
FROM Schedule A
INNER JOIN Stages B
ON A.StageId = B.StageId
INNER JOIN Phase C
ON A.PhaseId = C.PhaseId
WHERE A.Schedule = '2' and B.Stage = '0.25'
ORDERBY B.StageId DESC;
而且我得到這個錯誤:
ORDER BY項目必須出現在選擇列表中,如果指定了SELECT DISTINCT。
我試過其他建議,我的研究使用GROUP BY子句,而不是不同,但仍然沒有運氣。
我嘗試這樣做:
DECLARE @actual_startdate date = '2014-01-10'
SELECT
C.PhaseName,
A.Duration,
@actual_startdate StartDate,
DATEADD(dd, A.Duration, @actual_startdate) EndDate
FROM Schedule A
INNER JOIN Stages B
ON A.StageId = B.StageId
INNER JOIN Phase C
ON A.PhaseId = C.PhaseId
WHERE A.Schedule = '2' and B.Stage = '0.25'
GROUP BY C.PhaseName
order BY B.StageId DESC;
,並獲得新的錯誤:
,因爲它不是在聚合函數或載列「Schedule.Duration」在選擇列表中無效GROUP BY子句。
希望有人能幫助我。謝謝! :)
我也試過這個,但得到了,因爲它不包含在這個錯誤「列‘Stages.StageId’是在ORDER BY子句無效要麼是聚合函數,要麼是GROUP BY子句。' – jomsk1e 2014-10-31 07:48:04
@ jomsk1e現在更新 – 2014-10-31 07:50:50
fetl如此非常愚蠢! LOL非常感謝! :) 6分鐘接受你的回答XD – jomsk1e 2014-10-31 07:52:10