docs: add cedlab_Chart_UnderlyingOnly SP script
This commit is contained in:
52
docs/sql/cedlab_Chart_UnderlyingOnly.sql
Normal file
52
docs/sql/cedlab_Chart_UnderlyingOnly.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
USE [FirstSolutionDB]
|
||||
GO
|
||||
|
||||
-- ============================================================
|
||||
-- SP: cedlab_Chart_UnderlyingOnly
|
||||
-- Restituisce lo storico prezzi di UN SOLO sottostante, senza
|
||||
-- alcun contesto certificato (nessuno strike/barriera/trigger).
|
||||
-- Usata da UnderlyingChartDataService per il grafico standalone
|
||||
-- sottostante.
|
||||
--
|
||||
-- Output (Px_date ASC, TOP 350 più recenti):
|
||||
-- Nome VARCHAR -- "{Name} ({Ticker_bbg})", uguale su ogni riga
|
||||
-- Px_date DATE
|
||||
-- Px DECIMAL -- Px_close o Px_closeadj in base ad AdjustedPrices
|
||||
-- ============================================================
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[cedlab_Chart_UnderlyingOnly]
|
||||
@IDUnderlyings INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @AdjustedPrices BIT;
|
||||
SELECT @AdjustedPrices = ISNULL(AdjustedPrices, 0)
|
||||
FROM dbo.Underlyings
|
||||
WHERE IDUnderlyings = @IDUnderlyings
|
||||
AND deleted = 0
|
||||
AND sospeso = 0;
|
||||
|
||||
IF @AdjustedPrices IS NULL RETURN; -- non trovato / cancellato / sospeso
|
||||
|
||||
;WITH Ranked AS
|
||||
(
|
||||
SELECT
|
||||
p.Px_date,
|
||||
CASE WHEN @AdjustedPrices = 0 THEN p.Px_close ELSE p.Px_closeadj END AS Px,
|
||||
ROW_NUMBER() OVER (ORDER BY p.Px_date DESC) AS rn
|
||||
FROM dbo.Prices p
|
||||
WHERE p.UnderlyingsID = @IDUnderlyings
|
||||
AND (p.Px_low IS NOT NULL OR p.Px_high IS NOT NULL OR
|
||||
p.Px_open IS NOT NULL OR p.Px_close IS NOT NULL)
|
||||
)
|
||||
SELECT
|
||||
u.Name + ' (' + u.Ticker_bbg + ')' AS Nome,
|
||||
r.Px_date,
|
||||
r.Px
|
||||
FROM Ranked r
|
||||
CROSS JOIN (SELECT TOP 1 * FROM dbo.Underlyings WHERE IDUnderlyings = @IDUnderlyings) u
|
||||
WHERE r.rn <= 350
|
||||
ORDER BY r.Px_date ASC;
|
||||
END
|
||||
GO
|
||||
Reference in New Issue
Block a user