Comment insérer des enregistrements extraits d'une autre table dans une table
P粉449281068
P粉449281068 2023-10-10 17:36:09
0
2
719

J'essaie d'écrire une requête qui extrait et transforme les données d'une table, puis insère ces données dans une autre table. Oui, il s'agit d'une requête d'entrepôt de données et je l'ai exécutée dans MS Access. Donc, en gros, je veux une requête comme celle-ci :

INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES
  (SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1);

Je l'ai essayé mais j'ai reçu un message d'erreur de syntaxe.

Si tu voulais faire ça, que ferais-tu ?

P粉449281068
P粉449281068

répondre à tous(2)
P粉949267121

Vous disposez de deux options de syntaxe :

Option 1

CREATE TABLE Table1 (
    id int identity(1, 1) not null,
    LongIntColumn1 int,
    CurrencyColumn money
)

CREATE TABLE Table2 (
    id int identity(1, 1) not null,
    LongIntColumn2 int,
    CurrencyColumn2 money
)

INSERT INTO Table1 VALUES(12, 12.00)
INSERT INTO Table1 VALUES(11, 13.00)

INSERT INTO Table2
SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1

Option 2

CREATE TABLE Table1 (
    id int identity(1, 1) not null,
    LongIntColumn1 int,
    CurrencyColumn money
)

INSERT INTO Table1 VALUES(12, 12.00)
INSERT INTO Table1 VALUES(11, 13.00)


SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1
INTO Table2
FROM Table1
GROUP BY LongIntColumn1

N'oubliez pas que l'option 2 créera un tableau avec uniquement des colonnes sur la projection (colonnes sur le SELECT).

P粉322106755

Pas de "VALEURS", pas de parenthèses :

INSERT INTO Table2(LongIntColumn2, CurrencyColumn2)
SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal