webForumDet fria alternativet

Överföra information från en tabell i till en annan, i en och samma databas.

Databaser & SQL

7 svar · 230 visningar · startad av trexter

Medlem sedan mars 20021 889 inlägg
Frågan#1

I nuläget hämtar jag först informationen, lägger in den i ett RecordSet och skickar sedan tillbaka den till databasen. En rundtur som inte känns helt rätt. ;)

Finns det något SQL-kommando för att överföra info från en eller flera tabeller till en annan?

:)

Medlem sedan juni 200032 967 inlägg
#2
INSERT INTO tabell1 (fält1, fält2) SELECT Fält1, Fält2 FROM tabell2

Enkelt och grejt. ;)

Mvh.

Medlem sedan mars 20021 889 inlägg
#3

2 minuter! Cool.

:bire

Medlem sedan mars 20021 889 inlägg
#4

Uhm... det här klarar jag inte ut. Det kanske är dumt att använda
den SQL-frågan i detta sammanhanget? Här där det är
konkatenering här och var och inte bara värden ur databasen
utan också annat, t.ex. date().

Så här såg min kod ut innan jag började fippla. Kan man göra
något åt den, tro?

	'Lägger in information om kunden i Customers.
	strSQL = "Insert Into Customers(C_Firstname, C_Surname, C_Email, C_Street, " &_
			 "C_Zip, C_City, C_Telephone) Values('"& firstname &"', '"& surname &"'" &_
			 ", '"& email &"', '"& street &"', '"& zip &"', '"& city &"', '"& tel &"')"
	objConn.execute strSQL,,128
	
	'Hämtar det senast skapade id-numret.
	'Detta för att kunna koppla ihop tabellen Customers med Products.
	Set objRS = objConn.execute("SELECT @@IDENTITY")
	intNewID = objRS(0)
	objRS.Close
	Set objRS = Nothing

	'Hämtar inforamtion om köpet för att sedan kunna överföra det till tabellen Products.
	strSQL = "Select ShoppingBaskets.SB_Quantity, ShoppingBaskets.SB_ID_Products," &_
		 " Products.P_Name, Products.P_Price From ShoppingBaskets, Products Where" &_
		 " ShoppingBaskets.SB_SessionID = "& Request.Cookies("Webbshop")("SessionID") &_
		 " AND ShoppingBaskets.SB_ID_Products = Products.P_ID_Products"
	Set objRS = objConn.execute(strSQL)

	Const SB_Quantity = 0
	Const SB_ID_Products = 1
	Const P_Name = 2
	Const P_Price = 3
	
	While NOT objRS.EOF
		'Lägger in innehållet i varkorgen i databastabellen Products.
		strSQL = "Insert Into Orders(O_ProductName, O_Time, O_Date, O_Quantity, O_Price, O_ID_Product, O_ID_Customers) " &_
				 "Values('"& objRS(P_Name) &"', '"& Time() &"', '"& Date() &"', "& objRS(SB_Quantity) &", "& objRS(P_Price) &"," &_
				 ""& objRS(SB_ID_Products) &", "& intNewID &")"
		objConn.execute strSQL,,128
		objRS.MoveNext
	Wend

:)

Medlem sedan dec. 200012 464 inlägg
#5

SQL server?

strSQL = "Insert Into Orders(O_ProductName, O_Time, O_Date, O_Quantity, O_Price, O_ID_Product, O_ID_Customers) " & _
" select p_name,getdate(),getdate(),SB_quantity,P_price,SB_ID_products," & intNewdId & _
" From ShoppingBaskets, Products Where" &_
		 " ShoppingBaskets.SB_SessionID = "& Request.Cookies("Webbshop")("SessionID") &_
		 " AND ShoppingBaskets.SB_ID_Products = Products.P_ID_Products"
objConn.execute strSQL,,128

Det finns ingen anledning att lagra datum och tid som separata värden. Om jag vore i din situation så skulle jag slå ihop det till en kolumn.

Medlem sedan mars 20021 889 inlägg
#6

Tack så mycket!
Jag använder Access (tyvärr), skulle ha sagt det så klart.
Medför det några förändringar?

Du har nog rätt i det där med datumet, ska ändra på det.

:)

Medlem sedan dec. 200012 464 inlägg
#7

ersätt getdate() med now()

Medlem sedan mars 20021 889 inlägg
#8

Tack!

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)