Knocks/BackEnd/Knoks.Operate/Functions/API_CalcKnokRanks.sql

23 lines
828 B
Transact-SQL

CREATE FUNCTION [dbo].[API_CalcKnokRanks]
(
@knokId int = null
)
RETURNS TABLE
AS
RETURN (SELECT KnokId, Sum(r.Measure * f.Weight *f.Factor)/ Sum(f.Weight)*1000 RankValue from Signals
CROSS APPLY API_KnokRanks(Signals.KnokId) AS r
LEFT JOIN RankFactors f on f.RankId=r.RankId and f.Code=r.Code
where Signals.KnokId=ISNULL(@knokId, Signals.KnokId)
Group by Signals.KnokId)
/*
SELECT KnokId, r.*, f.* from Signals
CROSS APPLY API_KnokRanks(Signals.KnokId) AS r
LEFT JOIN RankFactors f on f.RankId=r.RankId and f.Code=r.Code
SELECT SignalId KnokId, Sum(r.Measure * f.Weight *f.Factor)/ Sum(f.Weight) RankValue from Signals
CROSS APPLY API_KnokRanks(Signals.KnokId) AS r
LEFT JOIN RankFactors f on f.RankId=r.RankId and f.Code=r.Code
-- where Signals.KnokId=ISNULL(1, Signals.KnokId)
Group by Signals.KnokId
*/