webForumDet fria alternativet

skumt...

8 svar · 308 visningar · startad av mikul

mikulMedlem sedan aug. 20013 824 inlägg
#1

Kanske igentligen skall ligga i sql forumet, men tycker det passar här också.

Det är så att så fort jag lägger till (select surename from customers where customers.id = invoice.relationid) as surname, i sql-fråga nr 2 som ni kommer att hitta i koden nedanför så får jag felmeddelandet

Det har inte angetts något värde för en eller flera nödvändiga parametrar.

Otroligt skumt med tanke på att det funkar hur bra som helst i sql-fråga nr 1....

If request.QueryString("status") = "alla" then
	sql = "select (select surename from customers where customers.id = invoice.relationid) as surname, "&_
		"invoice.* from invoice order by id desc;"
else	
  	Dim sql, cn, rs, id, relid, datum
	if request.form("id") <> "" then
		id = "and t.id = "& request.form("id") &" "
	end if
	
	if request.form("RelationId") <> "" then
		relid = "and t.relationid = "& request.form("relationid") &" "
	end if
	
	if request.form("dte1") <> "" and request.form("dte2") <> "" then
		datum = "and t.datum between '"& request.form("dte1") &"' and '"& request.form("dte2") &"' "
	end if
  	
	sql = "select (select surename from customers where customers.id = invoice.relationid) as surname, "&_ 
		"t.* from invoice t where [text] like '%%' "& id & relid & datum
End if

Skriver jag ut sql-frågan(nr 2) kan den exempelvis se ut så här(beroende på vad man söker efter):

select (select surename from customers where customers.id = invoice.relationid)
 as surname, t.* from invoice t where [text] like '%%' and t.id = 6 and
 t.relationid = 65 and t.datum between '2003-09-10' and '2003-09-12'

Någon som har någon bra lösning eller idé?

Engine^Medlem sedan dec. 20003 887 inlägg
#2

Använder du dig av Access2002 kan nog det där tänkas fungera, men annars behöver du väl staket (#) runt datumen? Och om du inte använder [text] like '%%' kan du ju ta bort den delen.

mikulMedlem sedan aug. 20013 824 inlägg
#3

Engine^ skrev:

Använder du dig av Access2002 kan nog det där tänkas fungera, men annars behöver du väl staket (#) runt datumen? Och om du inte använder [text] like '%%' kan du ju ta bort den delen.

Använder Access 2000. [text] like '%%' använder jag för att lättare kunna binda ihop sql-frågan med "if-satserna".

Men det är så skumt efterssom att det funkar i den första sql-frågan. :l

@ndersMedlem sedan juni 200032 969 inlägg
#4

Fungerar delfrågan för sig?

mikulMedlem sedan aug. 20013 824 inlägg
#5

Japp, efterssom den första sqlfrågan funkar som även innehåller delfrågan.

@ndersMedlem sedan juni 200032 969 inlägg
#6

Felmeddelandet brukar ju betyda att man angett ett fält- eller tabellnamn som inte finns, det antar jag att du kontrollerat?

(innan jag sätter de grå i arbete... ;) )

mikulMedlem sedan aug. 20013 824 inlägg
#7

Japp det har jag kollat den här gången. :)

nikoMedlem sedan juni 20022 599 inlägg
#8

Måste inte en subselect av den här typen vara skalär?

Varför inte bara köra frågan som en vanlig join:

select c.surename as surname, t.* from invoice t, customers c where c.id = t.relationid and [b]t.[/b][text] like '%%' and t.id = 6 and osv ....

? Eller missar jag nåt?

mikulMedlem sedan aug. 20013 824 inlägg
#9

Hehe, ja fråga mig inte varför jag inte gjort så :e får väll skylla på huvudverken jag har i dag! ;)

Tack så mycket niko! :bire

138 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)