이 질문은 그러나 데이터베이스 구조에 약간의 변화가있다이 question복잡한 SQL 쿼리</p> <p>나는 데이터베이스를 가지고 (나는 약간 단순화 이상으로)
에서 연속이다 쿼리 데이터 열을 다음과 같이
Key, Instance, User ID, Day, Size, Instance Type
키 - 이것은 기본 키입니다.
인스턴스 - 이것은 특정 인스턴스의 설명 자입니다 (고유 할 것입니다).
사용자 ID -이 숫자는이 테이블의 항목 수보다 적은 수의 사용자 중 1 명을 나타냅니다.
일 - 특정 사용자가이 인스턴스를 만든 날입니다. 1 일 또는 2 일 중 하나가됩니다.
크기 - 이것은 저장된 데이터의 크기입니다.
인스턴스 유형 - 인스턴스 유형이 여러 개 있습니다. 인스턴스 자체가 이러한 인스턴스 유형 중 하나가됩니다.
내 앞의 질문에서 중첩 된 SQL 쿼리를 작성하여 하루 1 일과 2 일에 인스턴스가 있고이 경우 특정 인스턴스 유형이있는 고유 한 사용자를 찾습니다.
이제 두 세트의 쿼리가 있습니다.
내가 지금하고 싶은 것은 세 번째 쿼리이며 사용자 ID이 다른 쿼리에 존재하지 않는 데이터베이스를 반환합니다.
지금까지 내가 쿼리를 설정 한하지만 정말 느린 ( ON 문 < 함께 할 수있는 뭔가>는 의 비교) 내가 정확히 내가 원하는하지 않습니다 심지어 100 % 확신한다.
이 지금까지 내 SQL 문입니다 :
Select Max(Table.Key) as Key,
Max(Table.Instance) as Instance,
Table.[User ID],
Max(Table.Day) as Day,
Max(Table.Size) as Size,
Max(Table.[Instance Type]) as [Instance Type]
from (((Table
inner join (Select top 90 Max(Table.Key) as Key,
Max(Table.Instance) as Instance,
Table.[User ID],
Max(Table.Day) as Day,
Max(Table.Size) as Size,
Max(Table.[Instance Type]) as [Instance Type]
from Table
where Table.[Instance Type]="type1" and
Table.[Day]=1 and
1=1
group by Table.[User ID]) as t2
on Table.[User ID]<>t2.[User ID])
inner join (Select top 90 Max(Table.Key) as Key,
Max(Table.Instance) as Instance,
Table.[User ID],
Max(Table.Day) as Day,
Max(Table.Size) as Size,
Max(Table.[Instance Type]) as [Instance Type]
from Table
where Table.[Instance Type]="type1" and
Table.[Day]=2 and
1=1
group by Table.[User ID]) as t3
on Table.[User ID]<>t3.[User ID])
inner join (Select Table.[User ID]
from Table
where 1=1) as t4
on Table.[User ID]=t4.[User ID])
where Table.[Instance Type]="type1"
group by Table.[User ID];
나는 대규모 감사하겠습니다 후에 해요 무엇을하는 방법에 어떤 도움이나 조언!
"나는 100 % 확실하게 필요." - 뭐라고? –
@MitchWheat : 나는 사용자 ID가 일치하지 않는 항목을 제외하는 것이 좋다고 100 % 확신하지는 않습니다. – Goz