В настоящее время я создаю список 5 лучших, который ранжируется по значению. Я передаю @InfoId = 12
, который возвращает ожидаемые значения. Но я не хочу показывать строку, в которой @InfoId = @InformationId
Так, например, если я передаю параметр 12 как InfoId
; Я не хочу показывать первую строку в приведенном ниже примере таблицы, где `InformationId = 12.
Вот пример возврата, который я получаю при выполнении моего запроса select
+------------------------------------+
| StateId InformationId CurrentValue |
+------------------------------------+
| 1 12 453231 |
| 1 10 394721 |
| 1 341 309425 |
| 1 21 308431 |
| 1 73 301342 |
+------------------------------------+
Вот пример того, чего я ожидаю:
+------------------------------------+
| StateId InformationId CurrentValue |
+------------------------------------+
| 1 10 394721 |
| 1 341 309425 |
| 1 21 309321 |
| 1 73 308431 |
| 1 62 301342 |
+------------------------------------+
Вот мой код:
@StateId int
, @InfoId int
, @CurrentValue int -- My new parameter
AS
BEGIN
select top 5
i.StateId,
i.InformationId,
i.CurrentValue,
from dbo.tblInformation i
inner join dbo.tblInformationAnalysis ia
on ia.StateId= i.StateId
and ia.InformationId= i.InformationId
and ia.CurrentValue= i.CurrentValue
inner join (
select
StateId,
InformationId,
CurrentValue,
from dbo.tblInformationAnalysis
where StateId = @StateID
group by StateId,
InformationId,
CurrentValue,
) via
on via.stateId= ia.stateid
and via.informationId= ia.informationId
and via.CurrentValue= ia.CurrentValue
inner join dbo.tblRetailData r
on r.stateId= i.stateid
and r.informationId= i.informationId
and r.CurrentValue= i.CurrentValue
inner join dbo.tblCounty c
on c.stateId= r.stateid
and c.informationId= r.informationId
and c.CurrentValue = 1
inner join dbo.tblRetailDataPublished rp
on rp.stateId= i.stateId
and rp.informationId= i.informationId
and rp.CurrentValue = i.CurrentValue
inner join dbo.RetailCollection rc
on rc.stateId= i.stateId
and rc.informationId= i.informationId
where i.StateId= @StateId
and p.InformationId = @InfoId
END