하나 이상의 값을 포함 할 수있는 결과 집합이 있다고 가정 해 봅시다.하지만 항상 결과에 하나의 값만 넣고 특정 값은 다른 값보다 더 가치가 있습니다.SQL에서 내 결과 집합의 일반적인 순위를 어떻게 만들 수 있습니까?
하위 쿼리에서 사용할 수 있도록 SQL에서이 문제를 어떻게 해결할 수 있습니까? 나는 테이블이
:
예 (T-SQL 특정, 그건 내가 작업 액센트의) 집안의 모든 종류의로드
tChore(ChoreId int primary key, ChoreDescription nvarchar(15))
. 나는 또 다른 테이블을 가지고있다 :
tDayChores(
DayId int primary key,
ChoreId int foreign key references tChore(ChoreId)
)
다 - 대 - 다 관계로 일과 집안일이로드된다.
물론 모든 요일의 이름이 포함 된 세 번째 테이블이 있습니다.
자, 내가 단 한 번만 하루를 진공 상태로 만들고 싶습니다. 나는 수요일에 그것을하는 것을 더 좋아한다. 그러나 만일 그것이 예정되지 않으면 나는 thursdays 위에서 그것을하고 싶다. 그리고, 그것이 예정되지 않으면, 그 다음은 중요하지 않다. 어떤 날이라도 괜찮다. 진공이 월요일과 수요일에 예정되어있는 경우
select top(1)
DayId
from
tDayChores DC
inner join tChore C
on C.ChoreId = DC.ChoreId
where
C.ChoreDescription = 'vacuum'
그러나, 나는이 결과로 월요일을 얻을 것, 나는 ': 한 행에 결과 집합을 제한하는
한 가지 방법은이 작업을 수행하는 것 수요일의 순위를 가장 높이고 싶습니다.
답을 삭제하고 그 내용을 질문 자체에 추가 할 수 있습니까? –
물론 답안 부분에 해결책 제안을 유지하는 것이 더 정확 해 보입니다. 괜찮아? –