öğe sayısını bulmak katılmak Ben Aşağıdaki tablolardaaynı revizyon numarasına
tblMainequipment
asset_id rev equipment_name
123 0 box
123 1 box
124 0 box
125 0 bottle
tblmainswablocation
asset_id rev swab_location
123 0 cover
123 0 base
123 1 cover
123 1 base
123 1 lock
124 0 cover
124 0 base
125 0 tube
125 0 cover
Belirli bir asset_ID için maksimum rev için swablocations toplam sayısını olsun ister etmedi. Örneğin, asset_id 123 rev 0 için swab konumunun toplam sayısı 2'dir, ancak rev 1 için 3'tür. Son birkaç saati anlamaya çalışıyorum ama bir çözüm bulamıyorum. Katıldığım için oldukça kötüyüm. Aşağıdaki i
query
asset_id maxrev #swablocation equipment_name
123 1 3 box
124 0 2 cover
125 0 2 bottle
kullandığım
sqlSELECT MEQ.*
FROM tblMainEquipment AS MEQ
INNER JOIN (Select asset_id, max(rev) as maxrev
From tblmainequipment GROUP By asset_id) AS groupmeq ON
(MEQ.asset_id = groupmeq.asset_id) AND (MEQ.rev = groupmeq.maxrev)
aşağıdaki Ben benim sorguya #swablocation ekleyebilir nasıl emin değilim, almaya çalışıyorum ne olduğunu gösterir.
select me.*,
(select count(*)
from tblmainswablocation as sl
where sl.asset_id = me.asset_id
) as numSwabs
from tblMainEquipment as me
where me.rev = (select max(me2.rev) from tblMainEquipment as me2 where me2.asset_id = me.asset_id);
avantajı dış sorgu toplanmasına gerek olmamasıdır:
#swablocation öğesini nasıl tanımlıyorsunuz? Bu bir sayı mı, kimlik numarası mı? – DanK
Bu bir sayım olurdu, ben daha net hale getirmek için benim gönderiimi düzenleyecektir – SunRay