Colonne calculée ne peut pas être utilisée dans une autre définition

Avec tous mes respects.
Je voudrais vous poser un problème J'ai rencontré avec Microsoft SQL Server Management Studio 17 .

Le problème est
La table est composée de champs
[A] [float] NULL,

[B] [float] NULL,

[C] [float] NULL,

[D] [float] NULL,

[E] AS ([A] + [B] + [C]), (Colonna calculée).

[F] AS ([E] + [D]), (Colonna calculée).

Dans Table Microsoft Access et Table Microsoft Excel il fonction correctement et normalement sans problème.
Mais à Microsoft SQL Server Management Studio 17(requête SQL)

Dans le cas de Script /requête (la création de la table ou de la modification ).

Par exemple

CREATE TABLE Table1 (

[A] [float] NULL,

[B] [float] NULL,

[C] [float] NULL,

[D] [float] NULL,

[E] AS ([A] + [B] + [C]), Colonne calculée

[F] AS ([E] + [D]) )

J'ai ce message
« La colonne calculée 'E' dans la table 'Table1' ne peut pas être utilisée dans une autre définition de colonne calculée ».

Veuillez m'informer de la nature du problème et des solutions possibles
Avec tout mon respect et merci

You have to repeat the calculation for column F:

[F] AS ([A] + [B] + [C] + [D])

Another way to do this would be to create a view - but you have the same issue and have to repeat the calculation. One way to accomplish that in a view or function is to utilize a derived table or common table expression;

WITH basequery
AS (
SELECT ..., E = A + B + C
FROM table
WHERE ...
)
SELECT ..., F = E + D
FROM basequery
1 Like

The error message says it all: you can't reference a computed field in another computed field.

But you can do:

CREATE TABLE #Table1 (
[A] [float] NULL,
[B] [float] NULL,
[C] [float] NULL,
[D] [float] NULL,
[E] AS ([A] + [B] + [C]),
[F] AS ([A] + [B] + [C] + [D])
);

Just as @jeffw8713 explained :slight_smile:

1 Like