J'ai une procédure stockée à laquelle je passe 4 variables, @ DCUId, @ SlaveAddress, @ DateFrom, @ dateToAide Utilisation de variables dans MS SQL Déclaration
Dans le SP je donne les résultats suivants:
DECLARE @MinAmbient decimal (4,1),@AverageAmbient decimal (4,1)
DECLARE @MaxAmbient decimal (4,1)
SELECT @MaxAmbient = MAX(CAST(T4 AS DECIMAL))/10,
@MinAmbient = MIN(CAST(T4 AS DECIMAL))/10,
@AverageAmbient = AVG(CAST(T4 AS DECIMAL))/10
FROM RECORDEDDETAIL WHERE DCUId = CONVERT(nvarchar(4),@DCUId)
AND SlaveId = @SlaveAddress
AND timestamp BETWEEN convert(nvarchar(20), @DateFrom,113)
AND convert(nvarchar(20), @DateTo,113)
qui fonctionne bien.
Je veux faire de la valeur de la colonne 'T4' une variable que je peux transmettre, ie.
DECLARE @TLink nvarchar(3)
SET @TLink = 'T4'
faire quelque chose comme
SELECT @MaxAmbient = MAX(CAST(@TLink AS DECIMAL))/10,
@MinAmbient = MIN(CAST(T4 AS DECIMAL))/10,.....
.......... etc
Quand je fais cela, je reçois une erreur ...
Qu'est-ce que je fais mal?
Merci
Roger
Pour clarifier exactement ce que je dois atteindre.
La colonne T4 fait référence à une température - cette valeur de température peut provenir de l'une des dix sondes. Le "mappage" de la sonde sur la colonne de température se fait via une autre table. Ainsi, la valeur de la colonne peut être Tx où x est compris entre 1 et 10.
Donc, avant la présente je déterminer la valeur de cadrage
DECLARE @TLink nvarchar (3) SELECT @TLink = TempLinks DE DCUConfigurations OÙ DCUID = @DCUId
Votre seule option est d'aller avec sql dynamique. – Oded