Hejsan det är så att jag håller på och gör en uträkning av alla poster som finns i databasen, men jag vill inte ha med artiklar som startar med 88 i mina uträkningar, ett artikelnummer är på 4 siffror och låt oss sääga att artikelnumret är 8814 då ska den inte vara med i uträkningen men om den är 8714 så skall den det, någon som vet hur man gör detta?
SQL =" SELECT * FROM order WHERE NOT sku = left(rs("psku"),2)" ???
ok, jag glömde nämna att det är två kolumner jag inte ska ha med, så här ser min sql sats ut:
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) AS totalsum From orders WHERE NOT (psku = '" &left(rsTemp("psku"),2)& "' )AND NOT (orderstatus = 3) GROUP BY Month(orderdate) ORDER BY 1"
får felmeddelandet:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
kan detta felmeddelande beror på att jag har flera rader som är tomma, för att jag la till pSku kolumnen precis i databasen, alltså det har redan gjorts flera tusen ordrar och f o m idag så tillkommer en ny kolumn pSku där den matas med information f o m idag alltså??
Felmeddelandet betyder att du försöker skriva ut ett fält mha asp-kod, vars namn är antingen felstavat eller att fältet helt enkelt inte finns med i recordsetet.
ok? och hur tycker du att det ska se ut i stället??
så här ser hela min kod ut:
<%
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) AS totalsum From orders WHERE NOT (pSku = '" &left(rsTemp("pSku"),2)& "') AND NOT (orderStatus = 3) GROUP BY Month(orderdate) ORDER BY 1"
set rsTemp = database.execute(mySQL)
%>
<b>Total omsättning bortsett från ... och ...:</b><br>
<%
do until rstemp.eof
pTotalSum = rstemp("totalSum")
pmonth = rstemp("MonthValue")
%>
<%Response.Write MonthName(pmonth)%>: <% response.write pTotalSum %> SEK<br>
<%
rstemp.MoveNext
loop
%>
jag får fel på raden med mySQL, och vad menar du med att fylle rsTemp de fylls ju då jag sätter:
set rsTemp = database.execute(mySQL)
men jag använder ju rsTemp i sql frågan så hur ska jag göra för att fylla recordseten innan jag kör min sql-fråga?? man kan ju inte exekvera sql satsen innan den körs?
jag testade med detta men det fungerar inte:
Set rsTemp = Server.CreateObject("ADODB.Recordset")
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) AS totalsum From orders WHERE NOT (pSku = '" &left(rsTemp("pSku"),2)& "') AND NOT (orderStatus = 3) GROUP BY Month(orderdate) ORDER BY 1"
'set rsTemp = database.execute(mySQL)
rsTemp.Open, mySQL, database
Nej, du kan ju inte använda recordsetet innan du har fyllt det med något, som du ju gör strax efter. Dessutom; du har ju inte med fältet pSku i din SELECT, så då kommer ju inte det med i recordsetet i alla fall. Vad är det du vill göra egentligen?
Vilken jämförelse är det tänkt att du ska göra i WHERE-satsen? Vilket pSku ska inte vara lika som de två första bokstäverna i vilket pSku? Sig själv? Alltså måste pSku vara längre än två tecken, eller vad menar du?
Använder du Access? Då kan du använda funktionerna left() och mid() direkt på fältvärdena i SQL-frågan. Det är nog den jämförelsen du får göra. Pseudokod:
Hämta si och så från tabellen där tecken 1 av artikelnumret inte är samma som tecken 2 i artikelnumret.
Är det inte det du vill göra? Vad är förresten fältet pSku för datatyp?
jag använder mig utav MSSQL7.0 och inte access, fältet har datatypen text. Produktnumret har 4 siffror xxxx och det jag vill göra är att INTE ta me d produkter som startar med 88xx i beräkningen.
Ja, det går att lösa, men börja med att byta datatyp på fältet! Hur långa artikelnummer ska du ha egentligen?
Byt till varchar med lämplig längd istället.
Nu när jag läser problemet, är det just 88 det inte får vara? Du har ju inte kommenterat mitt försök till pseudokod heller.
Om det är just 88 så ska man akta sig för att göra det för svårt för sig:
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) AS totalsum From orders WHERE NOT (pSku LIKE '88%') AND NOT (orderStatus = 3) GROUP BY Month(orderdate) ORDER BY 1"
Annars, om det är enligt min pseudokod ovan, kanske det här kan fungera:
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) AS totalsum From orders WHERE NOT (substring(pSku,1,1) = substring(pSku,2,1)) AND NOT (orderStatus = 3) GROUP BY Month(orderdate) ORDER BY 1"