13. februar 2006 - 21:41
Der er
35 kommentarer og 1 løsning
a - b max mindst give 0
Hej Jeg skal minus 2 variabler med hinanden, og det må mindst give nul, hvordan klarer man den? og det skal kunne bruges i sådan en sætning her: set pris=conn.execute("select * from priser order by a-b") hvis a er 100 og b 200 skal det give 0
Annonceindlæg fra Infor
13. februar 2006 - 21:52
#1
Jeg er ikke helt med på dit problem. Hvad er formålet - ønsker du at alle de tilfælde hvor a>b skal vises i en "vilkårelig" rækkefølge hvor sorteringen ikke er styret af a-b ?
13. februar 2006 - 21:54
#2
der hvor a er større end b, skal resultatet bare være 0
13. februar 2006 - 21:54
#3
tilfælde hvor b er større end a, fx 200-100 skal resultatet være 100
13. februar 2006 - 21:57
#4
ok, så skal du bare bruge order by abs(a-b) så får du altid positive værdier ud
13. februar 2006 - 22:04
#5
Et bud: "SELECT *, IF(a-b>0,a-b,0) AS aMinuSb FROM priser ORDER BY aMinuSb"
13. februar 2006 - 22:04
#6
så giver 2-3 = 1 det skal give 0
13. februar 2006 - 22:06
#7
ok. Hmm så skal jeg lige tænke. Du skrev bare : tilfælde hvor b er større end a, fx 200-100 skal resultatet være 100 :-)
13. februar 2006 - 22:06
#8
nielle vil du forklare nærmere?
13. februar 2006 - 22:07
#9
200-100=100 ;) 100-200=-100 (her skal det give 0 og ikke -100)
13. februar 2006 - 22:09
#10
Gerne: IF(a-b>0,a-b,0) - giver a-b hvis a>b og 0 ellers. Med "AS aMinuSb" bliver denne værdi kendt under aliaset "aMinuSb". Det er dette alias som bruges under "ORDER BY" ledet.
13. februar 2006 - 22:09
#11
13. februar 2006 - 22:10
#12
prøver det lige....
13. februar 2006 - 22:12
#13
min fejl.... Godt jeg ikke lever af at regne...
13. februar 2006 - 22:14
#14
Unknown column 'aMinuSb' in 'order clause'
13. februar 2006 - 22:16
#15
Virker denne version (pånær sorterimngen): "SELECT *, IF(a-b>0,a-b,0) AS aMinuSb FROM priser"
13. februar 2006 - 22:22
#16
ja
13. februar 2006 - 22:28
#17
Så prøv denne: "(SELECT *, IF(a-b>0,a-b,0) AS aMinuSb FROM priser) ORDER BY aMinuSb DESC"
13. februar 2006 - 22:33
#18
der kommer stadig en fejl.... kan det være fordi jeg gange aMinuSb med c?
13. februar 2006 - 22:35
#19
Hvor gør du det?
13. februar 2006 - 22:38
#20
"(SELECT *, IF(a-b>0,a-b,0) AS aMinuSb FROM priser) ORDER BY (aMinuSb * C) DESC"
13. februar 2006 - 22:38
#21
der
13. februar 2006 - 22:40
#22
Hvorfor ikke sådan? "(SELECT *, IF(a-b>0,a-b,0)*c AS aMinuSbGangEc FROM priser) ORDER BY aMinuSbGangEc DESC"
13. februar 2006 - 22:43
#23
Eller måske: "SELECT (SELECT *, IF(a-b>0,a-b,0) AS aMinuSb FROM priser) ORDER BY (aMinuSb * C) DESC"
13. februar 2006 - 22:43
#24
tror det virker nu, skal bare lige tilrettes... smid et svar
13. februar 2006 - 22:46
#25
Hvilken af versionerne? ... og et svar :^)
13. februar 2006 - 22:59
#26
virker desværre ikke... der kommer bare ingen fejl
13. februar 2006 - 23:01
#27
sådan her er den skrevet: set pris=conn.execute("(SELECT *, IF("& session("pm1") &"-m2>0,"& session("pm1") &"-m2,0) * "& session("pm1") &" * m1 + abb + sms * "& session("psms") &" + mms * "& session("pmms") &" AS pris FROM abb) order by pris DESC")
13. februar 2006 - 23:01
#28
Hvis der ikke kommer nogen fejl, så må der være noget som virker :^) Hvad sker der? Hvad sker der ikke? Hvad forventede du at der skulle ske?
13. februar 2006 - 23:03
#29
at den billigste vil komme først
13. februar 2006 - 23:07
#30
Hvis den billigste skal først så skal det være ASC (Ascending = Stigende) i stedet for DESC (Descending = Faldende).
13. februar 2006 - 23:11
#31
kan jeg ikke skrive variablen pris et sted så jeg kan se hvordan den sorterer?
13. februar 2006 - 23:13
#32
så virker det, bortset fra at 0 kommer til sidst?
13. februar 2006 - 23:14
#33
kan det laves nemt?
13. februar 2006 - 23:15
#34
Sådan? Set rs = Conn.Execute("(SELECT *, IF(" & Session("pm1") & "-m2>0," & Session("pm1") & "-m2,0) * " & Session("pm1") & " * m1 + abb + sms * " & Session("psms") & " + mms * " & Session("pmms") & " AS pris FROM abb) ORDER BY pris ASC") Response.Write rs("pris")
13. februar 2006 - 23:16
#35
0 burde ikke komme til sidst? (Bliver altså nødt til at smutte for i dag nu - g'nat :^)
14. februar 2006 - 15:45
#36
Fik du det til at virke 100%?
Kurser inden for grundlæggende programmering