Avatar billede axkris Nybegynder
11. december 2005 - 15:57 Der er 13 kommentarer

Subselect i en insert-sætning??

Hej alle

Kan det ikke lade sig gøre, at lave en sub-select i en insert-sætning?

Jeg får:
Subqueries are not allowed in this context. Only scalar expressions are allowed.
Avatar billede innercitydk Nybegynder
11. december 2005 - 15:58 #1
må jeg se din sql

vh
Avatar billede axkris Nybegynder
11. december 2005 - 16:08 #2
f.eks.:

Jeg har klippet "kernen" ud:

INSERT INTO SFH (MEMBERID) VALUES (SELECT MAX(MEMBERID) FROM SFL)
Avatar billede innercitydk Nybegynder
11. december 2005 - 16:12 #3
Jeg ved ik hvad du koder i, men jeg gør eksakt det samme som dig når jeg tildeler id.. Gør det at du først henter max memberid ud fra databasen i en int variabel plus med 1 og lav så din insert query..

Vh Nicki
Avatar billede innercitydk Nybegynder
11. december 2005 - 16:16 #4
F.eks SELECT MAX(MEMBERID) FROM SFH

Lav en metode der henter max memberid, sæt så variablen = metodens returværdi

int memberid=hentmemberid()

memberid = memberid +1;

Og så din insert:

"INSERT INTO SFH (MEMBERID) VALUES("+memberid+");

Vh
Avatar billede axkris Nybegynder
11. december 2005 - 16:40 #5
Jeg koder i asp (vb).

Takker, men jeg har allerede den løsning, hvor jeg har delt det op, men jeg vil gerne have det i et sql-hug. Jeg prøver lige at undersøge, hvorfor det ikke virker på min sql-server.
Avatar billede innercitydk Nybegynder
11. december 2005 - 16:51 #6
Prøv den her: INSERT INTO SFH (SFH.MEMBERID) VALUES (SELECT MAX(MEMBERID) FROM SFL)
Avatar billede innercitydk Nybegynder
11. december 2005 - 16:57 #7
hvis det ikke virker er jeg desværre blank :)

Held og lykke med det

Vh
Avatar billede arne_v Ekspert
11. december 2005 - 17:32 #8
prøv:

INSERT INTO SFH (MEMBERID) SELECT MAX(MEMBERID) FROM SFL

altså uden VALUES
Avatar billede axkris Nybegynder
11. december 2005 - 20:03 #9
ok, du fjerner values-teksten og parenteserne, men hvad vil du så gøre, når der skal indsættes to værdier (altså en i hvert felt)?
Avatar billede arne_v Ekspert
11. december 2005 - 21:44 #10
INSERT INTO tabel (felt1,felt2,felt3) SELECT noget1,noget2,noget3 FROM andentabel
Avatar billede axkris Nybegynder
11. december 2005 - 22:16 #11
Incorrect syntax near ',' (dvs. ved sub-select'en)

strSQL = "SET DATEFORMAT DMY INSERT INTO SFH (FUnique, OrdreNummer, FakturaNummer, SalgerID, PBSLeverence, Status, OrdreDato, FakturaDato, ForfaldDato, BehKonto, AltOmsKonto, KontoType, Debitor, FakturaDebitor, ProjektNr, Afdeling, Transaktion, PermanentUnique, Kategori, LevAdr1, LevAdr2, LevAdr3, LevAdr4, LeveringsKonto, LevAdr5, LevAdr6, LevAdr7, LevAdr8, FragtBrev, FragtCentral, Note1, Note2, BetalBet, VorRef, DeresRef, DeresRef2, Valuta, Klar, ProduktionsStatus, Title, FakturaType, Udskrevet, Bogfort, ExMoms, Moms, Inmoms, MomsFri, SumExTilskud, TilskudInMoms, TillagSum, KPsum, PunktAfgift, DB, DG, TotalVaegt, ProdInfo, LeveringsInfo, ProdNr, Note) SELECT MAX(FUNIQUE) + 1 FROM SFH, " & strOrderID & ", " & strInvoiceID & ", " & strSalespersonID & ", 0, 0, '" & strOrderDate & "', '" & strInvoiceDate & "', DATEADD(m, 1, '" & strOrderDate & "'), 7860, 0, '', " & strCustomerID & ",  0, 0, 0, 0, 0, 0, '" & strAddress1 & "', '" & strAddress2 & "', '" & strAddress3 & "', '" & strAddress4 & "', 0, '" & strAddress1 & "', '" & strAddress2 & "', '" & strAddress3 & "', '" & strAddress4 & "', '', '', '', '', " & strPaymentTerms & ", '', '', '', 0, 1, 0, '', 0, 0, 0, " & strPrice * 0.80 & ", " & strPrice * 0.80 * 0.25 & ", " & strPrice & ", 0, " & strPrice & ", 0, 0, 0, 0, " & strPrice & ", 100, 0, '', '', 0, '" & strNote & "'"
Avatar billede arne_v Ekspert
11. december 2005 - 22:42 #12
der er et eller andet galt med placeringen af din FROM
Avatar billede veronica Nybegynder
12. december 2005 - 09:52 #13
Prøv dette ..

strSQL = "SET DATEFORMAT DMY INSERT INTO SFH (FUnique, OrdreNummer, FakturaNummer, SalgerID, PBSLeverence, Status, OrdreDato, FakturaDato, ForfaldDato, BehKonto, AltOmsKonto, KontoType, Debitor, FakturaDebitor, ProjektNr, Afdeling, Transaktion, PermanentUnique, Kategori, LevAdr1, LevAdr2, LevAdr3, LevAdr4, LeveringsKonto, LevAdr5, LevAdr6, LevAdr7, LevAdr8, FragtBrev, FragtCentral, Note1, Note2, BetalBet, VorRef, DeresRef, DeresRef2, Valuta, Klar, ProduktionsStatus, Title, FakturaType, Udskrevet, Bogfort, ExMoms, Moms, Inmoms, MomsFri, SumExTilskud, TilskudInMoms, TillagSum, KPsum, PunktAfgift, DB, DG, TotalVaegt, ProdInfo, LeveringsInfo, ProdNr, Note) SELECT MAX(FUNIQUE) + 1, " & strOrderID & ", " & strInvoiceID & ", " & strSalespersonID & ", 0, 0, '" & strOrderDate & "', '" & strInvoiceDate & "', DATEADD(m, 1, '" & strOrderDate & "'), 7860, 0, '', " & strCustomerID & ",  0, 0, 0, 0, 0, 0, '" & strAddress1 & "', '" & strAddress2 & "', '" & strAddress3 & "', '" & strAddress4 & "', 0, '" & strAddress1 & "', '" & strAddress2 & "', '" & strAddress3 & "', '" & strAddress4 & "', '', '', '', '', " & strPaymentTerms & ", '', '', '', 0, 1, 0, '', 0, 0, 0, " & strPrice * 0.80 & ", " & strPrice * 0.80 * 0.25 & ", " & strPrice & ", 0, " & strPrice & ", 0, 0, 0, 0, " & strPrice & ", 100, 0, '', '', 0, '" & strNote & "'  FROM SFH"

i.e. jeg har flyttet " FROM SFH" til slutningen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester