Итак, у меня есть 2 разных запроса, которые работают так, как они предназначены.Запрос A:
select tipo.descripcion as tipoId, tipo.id
from Empleados emp
inner join dbo.Opciones op ON op.empleadoId = emp.id
inner join dbo.TipoEquipo tipo ON tipo.id = op.tipoEquipoId
where username='user' order by op.numOpcion
Результат A:
tipoId id
EquipmentD 3
EquipmentC 10
EquipmentB 11
EquipmentA 13
Запрос B:
select
tip.id,
tip.descripcion as Descripcion,
sum(case when eq.asignado='No' Then 1 Else 0 END) as conteoNo
from Equipos eq
left outer join TipoEquipo tip on tip.id=eq.tipoId
group by tip.descripcion, tip.id
РезультатB:
id Descripcion conteoNo
1 EquipmentY 3
2 EquipmentX 64
3 EquipmentD 31
4 EquipmentF 0
5 EquipmentH 1
7 EquipmentO 1
8 EquipmentT 5
9 EquipmentG 8
10 EquipmentC 7
11 EquipmentB 2
13 EquipmentA 2
Итак, я хочучтобы пересечь результаты, потому что у них есть уникальные идентификаторы, которые совместно используются таблицами, поэтому я хочу присоединиться к ним, возможно, с помощью внутреннего объединения?
Что-то вроде A.id с B.id и отобразить что-то вроде id| tipoId | conteo (но только с использованием значений, найденных в Query A. Я думал что-то вроде выбора внутри другого выбора. Что-то вроде Results A + conteoNo.
select tipo.descripcion as tipoId, tipo.id
from Empleados emp inner join (
select
tip.id,
tip.descripcion as Descripcion,
sum(case when eq.asignado='No' Then 1 Else 0 END) as conteoNo
from Equipos eq
left outer join TipoEquipo tip on tip.id=eq.tipoId
group by tip.descripcion, tip.id
) x on tipo.id = x.id
inner join dbo.Opciones op ON op.empleadoId = emp.id
inner join dbo.TipoEquipo tipo ON tipo.id = op.tipoEquipoId
where username='landerosj' order by op.numOpcion
Не знаю, является ли это дажевозможно, или я должен просто пойти с хранимой процедурой?
Спасибо.