---
title: "Fylla databaskolumner i ordning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/131737-fylla-databaskolumner-i-ordning"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "M@rtin"
published: "2005-07-22T00:26:51.000Z"
updated: "2005-07-22T13:34:31.000Z"
replies: 5
views: 547
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/131737-fylla-databaskolumner-i-ordning"
---

# Fylla databaskolumner i ordning

## #1 — M@rtin, 2005-07-22T00:26Z

Jag har en databastabell som ser ut ungefär så här:

id \| var1 \| var2 \| var3 \| var4

Nu vill jag att den ska fyllas i båda dimensionerna varje gång man vill lägga in nåt i databasen. Alltså först och främst ska var1-4 fyllas i ordning, sedan ska det skapas en ny rad med nytt id när det behövs.

Hur gör man detta?

Permalänk: https://www.webforum.nu/p/131737

## #2 — @nders, 2005-07-22T05:46Z

Om du har möjlighet att försöka skriva frågan på ett annat sätt skulle det underlätta. Jag förstår ingenting! :)

Permalänk: https://www.webforum.nu/p/1647743

## #3 — M@rtin, 2005-07-22T10:57Z

Hehe, ja det jag egentligen vill åstadkomma är att man för varje dag kan lägga in fyra värden.

date_id  \| va1 \| va2 \| va3 \| va4
050422  \| 100  \| 200 \|  150 \| 250
050423  \| 123  \| 320 \|  120 \| 100
050424  \| 340  \| 120 \|  200 \| 300
050423  \| 120  \| 230 \|

Värdena kan komma när som helst, det behöver inte (och är oftast inte) under samma datum som där jag vill lägga det.

Om det nu är 050422 och jag får in ett värde så ska det läggas efter 230 på datum 050423 och det är det här jag inte riktigt vet hur man gör.

Ett annat problem är hur man lägger in nästkommande datum när en rad är full.

Svårt att förklara på något annat sätt men jag hoppas det klarnar. :)

Permalänk: https://www.webforum.nu/p/1647820

## #4 — nordiz, 2005-07-22T13:25Z

Låter som något du lämpligtvis gör med en lagrad procedur om det nu är mssql du kör, den skulle väl i princip se ut såhär:

CREATE PROCEDURE \[dbo\].\[spSaveValue\]  (@value as varchar(50)) AS

declare @var1 as varchar(50)
declare @var2 as varchar(50)
declare @var3 as varchar(50)
declare @var4 as varchar(50)
declare @id as varchar(50)

select top 1 @id=id, @var1=var1, @var2=var2, @var3=var3, @var4=var4 from  test order by id desc

if @var1 is null  begin
	update test set var1=@value where id=@id
end else begin
	if @var2 is null  begin
		update test set var2=@value where id=@id
	end else begin
		if @var3 is null  begin
			update test set var3=@value where id=@id
		end else begin
			if @var4 is null  begin
				update test set var4=@value where id=@id
			end else begin
				insert into test (var1) values (@value)
			end 
		end
	end 
end

(om nu tabellen heter test och idkollumnen heter id)

Om du nu inte kör mssql kan du göra samma sak i asp, något i stil med:

sub saveValue(sValue)
sValue = replace(sValue, "'", "''")
set oRS = odb.execute("select top 1 id, var1,var2, var3,var4 from  test order by id desc")

if isnull(ors("var1").value) then 
odb.execute "update test set var1='" & sValue & "' where id=" & ors("id")
exit sub
end if

if isnull(ors("var2").value) then 
odb.execute "update test set var2='" & sValue & "' where id=" & ors("id")
exit sub
end if

if isnull(ors("var3").value) then 
odb.execute "update test set var3='" & sValue & "' where id=" & ors("id")
exit sub
end if

if isnull(ors("var4").value) then 
odb.execute "update test set var4='" & sValue & "' where id=" & ors("id")
exit sub
end if

odb.execute "insert into test (var1) values ('" & sValue & "'")

end sub

\----------
Hmms.. nu blev det säkert en jäkla massa rörig kod och ett långt meddelande, (sitter och skriver allt direkt i webbläsaren så jag garanterar inte att det funkar.. men nått i den stilen iaf)...

Permalänk: https://www.webforum.nu/p/1647849

## #5 — M@rtin, 2005-07-22T13:30Z

Kör mysql tyvärr men din andra lösning borde fungera alldeles utmärkt den med!

Tack så mycket!

Permalänk: https://www.webforum.nu/p/1647853

## #6 — @nders, 2005-07-22T13:34Z

Jag tycker mest att det verkar som att datamodellen stinker. Men å andra sidan kan jag inte för mitt liv förstå mig på vad du håller på med, så jag kan inte direkt ge tips.

Generellt sett tycker jag dock att du borde ha en tabell med ett datum och ett fält för "värde" (vad nu det är), och upp till fyra poster per datum. 

Jag förstår inte alls heller varför ett värde som tillhör 050422 skall ligga i ett fält som tillhör en post för 050423. Men det är väl inte meningen att man ska förstå...?

mvh

Permalänk: https://www.webforum.nu/p/1647857

---

Tråden på webben: https://www.webforum.nu/amne/asp/131737-fylla-databaskolumner-i-ordning
