Si e possibile,
Ho ripescato dal mio "Archivio" un vecchio DB
da cui potresti prendere spunto
Ripropongo il problema a cui ha risposto:
__ Dato un punto temporale di partenza
__ Dati dei periodi in minuti dalla partenza ( anche non consecutivi )
__ Date le letture di temperatura ad ogni "battere" del periodo
Trovare i delta di temperatura fra tutti i periodi adiacenti.
Guardati lo script allegato che in SQLServer ( dovrai tradurlo in MySql )
1)__ Ti Crea il DB
2)__ Ti Crea la tabella
3)__ Ti Inserisce i dati
4)__ Ti fa 2 Viste X01 e X05 che utilizzando RowNumber
arrivano al risultato
5)__ Ti fa altre 3 viste Y01 Y03 e Y05 che utilizzandi
i Join arrivano allo stesso risultato
NB: Non so se in MySql hai la funzione RowNumber
alla peggio vai direttamente al punto 5 dei Join
-- 1) Creo il DB
CREATE DATABASE Lett;
GO
-- Uso il DB appena creato
USE Lett;
GO
-- 2) Creo una tabella
CREATE TABLE [dbo].[Le]
(
[LeMin] [int] PRIMARY KEY,
[LeTem] [int]
);
GO
-- LeMin sono i Minuti Trascorsi
-- LeTem sono le temperature registrate nell'istante
-- 3) Inserisco un po di dati
INSERT [dbo].[Le]
([LeMin], [LeTem])
VALUES
(1, 20),
(2, 35),
(3, 12),
(4, 25),
(5, 40),
(6, 50),
(7, 22);
GO
-- 4) Creo la prima famiglia di viste a treno ( che potro nidificare )
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CREATE VIEW [dbo].[X01]
AS
SELECT TOP (100) PERCENT
LeMin,
LeTem,
ROW_NUMBER() OVER (ORDER BY LeMin) AS Ord
FROM
dbo.Le
GO
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CREATE VIEW [dbo].[X05]
AS
SELECT
X01Da.LeMin AS Dax,
X01Da.LeTem AS LeDax,
X01Al.LeMin AS Alx,
X01Al.LeTem AS LeAlx,
X01Al.LeTem - X01Da.LeTem AS Delta
FROM
dbo.X01 AS X01Da
LEFT OUTER JOIN
dbo.X01 AS X01Al
ON
X01Da.Ord = X01Al.Ord - 1
GO
-- 5) Creo la seconda famiglia di viste a treno ( che potro nidificare )
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CREATE VIEW [dbo].[Y01]
AS
SELECT TOP (100) PERCENT
LeDa.LeMin AS Dax,
LeAl.LeMin AS Alx
FROM
dbo.Le AS LeDa
LEFT OUTER JOIN
dbo.Le AS LeAl
ON
LeDa.LeMin < LeAl.LeMin
GO
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CREATE VIEW [dbo].[Y03]
AS
SELECT TOP (100) PERCENT
Dax,
MIN(Alx) AS Alx
FROM
dbo.Y01
GROUP BY
Dax
ORDER BY
Dax,
Alx
GO
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CREATE VIEW [dbo].[Y05]
AS
SELECT TOP (100) PERCENT
dbo.Y03.Dax,
LeDw.LeTem AS LeDax,
dbo.Y03.Alx,
LeAw.LeTem AS LeAlx,
LeAw.LeTem - LeDw.LeTem AS Delta
FROM
dbo.Y03
LEFT OUTER JOIN
dbo.Le AS LeAw
ON
dbo.Y03.Alx = LeAw.LeMin
LEFT OUTER JOIN
dbo.Le AS LeDw
ON
dbo.Y03.Dax = LeDw.LeMin
ORDER BY
dbo.Y03.Dax
GO
-- Finito
Facci Sapere
Saluti