Avatar billede l_otto Nybegynder
17. september 2003 - 12:21 Der er 53 kommentarer og
3 løsninger

udregningen virker ikke helt

hej ..
jeg har fået lavet denne kode som skal finde det billigste produkt eller hvis prisen er den samme skrive det, den henter fra to tabeller tabel1 og tabel2. Hvis produktet ikke findes i den ene tabel skal den stadig vise det, som det billigst.. men det gør denne her ikke.. den kører fint igennem men det regner ikke rigtigt og viser heller ikke alle produkter.:

hjælp hvis I kan

<%


SQL = "SELECT tabel1.levnavn AS navn1, tabel2.levnavn AS navn2, tabel1.pris AS pris1, tabel2.pris AS pris2, tabel1.DescShort AS b, tabel1.varenummer FROM tabel1 INNER JOIN tabel2 ON tabel1.varenummer=tabel2.varenummer where tabel1.varenummer"
Set rs=conn.execute(SQL)

Do while not (rs.BOF or rs.EOF)
    if (rs("pris1")<rs("pris2")) then
        pris = rs("pris1")
        navn = rs("navn1")
    end if
    if (rs("pris2")<rs("pris1")) then
        pris = rs("pris2")
        navn = rs("navn2")
    end if
    if (rs("pris1")=rs("pris2")) then
        fejl = 1
        pris = rs("pris1")
        navn = rs("navn1") &" og "& rs("navn2")
    end if
    response.write("Varen: "& rs("varenummer") & rs("b") &"")
    if (fejl) then
        response.write("sælges til samme pris ("& pris &") hos "& navn &"<br>")
    else
        response.write("sælges billigst ("& pris &") hos "& navn &"<br>" )
    end if
    rs.movenext
loop

%>
Avatar billede -thomas- Nybegynder
17. september 2003 - 12:21 #1
Prøv at skifte INNER JOIN ud med LEFT JOIN.
Avatar billede l_otto Nybegynder
17. september 2003 - 12:28 #2
det samme men nu tager den alle produkterne med... men den regner ikke rigtigt..
Avatar billede eagleeye Praktikant
17. september 2003 - 12:32 #3
Problemmet ligger som jeg ser i at det er en join. Det skulle i min verden være en UNION og så lave en SQL som denne hvor den med GROUP BY finde den mindste pris..

SELECT * FROM spm401625 AS T1, (SELECT min(T2.pris) as mpris, T2.varenummer
FROM spm401625 AS T2 GROUP BY T2.varenummer) AS [T3] WHERE T1.pris = mpris;

Jeg har ikke tid til at vise et bedre eksemple før i aften.
Avatar billede l_otto Nybegynder
17. september 2003 - 12:33 #4
ok, jeg holder med dig T...

hvis du har tid i aften eller i morgen ville det være super sej...:-)

jeg er online om dagen mest....

P
Avatar billede -thomas- Nybegynder
17. september 2003 - 12:34 #5
Ok, var et forsøg værd uden at nærlæse spg. - kan godt se at det er INNER JOIN du skal bruge nu.

Som det er nu, skriver den pris1 hvis den er mindst, pris2 hvis den er mindst og pris1 hvis de er lig hinanden. Hvad skal den istedet?
Avatar billede l_otto Nybegynder
17. september 2003 - 12:37 #6
jamen det der rigtigt det der bare er problemmet er at når feks. pris2 er billigst skriver den at den er det samme men viser den biligste pris...

så den skriver ikke at det er den billigste men sælges til samme pris
Avatar billede -thomas- Nybegynder
17. september 2003 - 12:41 #7
Skal der ikke stå noget efter "where tabel1.varenummer" i din sql?
Avatar billede l_otto Nybegynder
17. september 2003 - 12:43 #8
SQL = "SELECT tabel1.levnavn AS navn1, tabel2.levnavn AS navn2, tabel1.pris AS pris1, tabel2.pris AS pris2, tabel1.DescShort AS b, tabel1.varenummer FROM tabel1 LEFT JOIN tabel2 ON tabel1.varenummer=tabel2.varenummer where tabel1.varenummer"

sådan står den
Avatar billede -thomas- Nybegynder
17. september 2003 - 12:45 #9
Hvordan angiver du så varenummeret på den vare du vil søge på?
Avatar billede l_otto Nybegynder
17. september 2003 - 12:45 #10
jamen her tager den bare alle
Avatar billede -thomas- Nybegynder
17. september 2003 - 12:47 #11
Kan du ikke give et eks. på dine tabeller og på hvad du gerne vil have ud? Er ikke sikker på, at jeg forstår hvad det er du vil.
Avatar billede l_otto Nybegynder
17. september 2003 - 12:50 #12
ok.. der er to leverandøre og deres priser og produkter ligger i hver deres tabel.
de har begge en saab 9000 med varenummer "9000" tabel1 = lev1 har pris 5000 og tabel2 = lev2 har pris 5100 så skal den sammelinge på varenummere og sig ok det er den samme vare derefter sammelinger jeg priserne og så skal jeg skrive hvem der er billigt.. hvis de har den samme pris vises begge levnavne..

håber du fårstå det er for hurtigt at se hvem der er billigt..
Avatar billede -thomas- Nybegynder
17. september 2003 - 13:00 #13
Har lige afprøvet i en tabel, og det ser da ud til at virke som det skal?

Prøv at give et konkret eks. hvor den laver fejl.
Avatar billede l_otto Nybegynder
17. september 2003 - 14:02 #14
ja det virker også for mig når jeg laver en lille enkelt version... men når jeg knalder 13000 varenumre ind så går det ikke så godt..
Avatar billede l_otto Nybegynder
17. september 2003 - 14:05 #15
nej nu har jeg fejlen....

prøv at lave to vare der har den samme pris.... så kan den ikke finde ud af dem der komme bagefter....!
Avatar billede satanic_raven Nybegynder
17. september 2003 - 14:11 #16
Prøv at bytte lidt rundt på rækkefølgen, og så brug ELSE:
    if (rs("pris1")=rs("pris2")) then
        fejl = 1
        pris = rs("pris1")
        navn = rs("navn1") &" og "& rs("navn2")
    else
        if (rs("pris1")<rs("pris2")) then
          pris = rs("pris1")
          navn = rs("navn1")
        else
          pris = rs("pris2")
          navn = rs("navn2")
    end if
end if

Har før set at det bare var rækkefølgen der var forkert...

Men er ikke sikker på at det er det der er problemet her, bare er forslag...

S.R.
Avatar billede l_otto Nybegynder
17. september 2003 - 14:14 #17
hej San..

nej det er det samme når den har haft to ens priser kan den ikke finde ud af det med de varer der kommer bagefter..?
Avatar billede l_otto Nybegynder
17. september 2003 - 14:20 #18
faktisk er det fra produkt tre og frem uanset hvad priserne er, der tager den ikke den billigst..
Avatar billede l_otto Nybegynder
17. september 2003 - 14:42 #19
nu virker det med at jeg ændrede felterne til tal !!!!

men den viser stadig ikke hvis der er en vare der ikke har ens varenummer.. altså hvis der kun er en varenummer.. midt i det hele
Avatar billede l_otto Nybegynder
17. september 2003 - 14:50 #20
jamen hovsa .. der er jo også varenumre med bogstaver i ? hvad så
Avatar billede -thomas- Nybegynder
17. september 2003 - 14:56 #21
Hej igen, hvilken database bruger du og hvilke felttyper?
Avatar billede -thomas- Nybegynder
17. september 2003 - 14:58 #22
Du skal bare indsætte:

fejl = 0

før rs.movenext så virker det.
Avatar billede l_otto Nybegynder
17. september 2003 - 14:59 #23
access  og ligenu er det tal for varenummer og pris og tekst for levnavn og DescShort
Avatar billede l_otto Nybegynder
17. september 2003 - 15:02 #24
<%

SQL = "SELECT tabel1.levnavn AS navn1, tabel2.levnavn AS navn2, tabel1.pris AS pris1, tabel2.pris AS pris2, tabel1.DescShort AS b, tabel1.varenummer FROM tabel1 inner JOIN tabel2 ON tabel1.varenummer=tabel2.varenummer where tabel1.varenummer"
Set rs=conn.execute(SQL)

Do while not (rs.BOF or rs.EOF)
    if (rs("pris1")<rs("pris2")) then
        pris = rs("pris1")
        navn = rs("navn1")
    end if
    if (rs("pris2")<rs("pris1")) then
        pris = rs("pris2")
        navn = rs("navn2")
    end if
    if (rs("pris1")=rs("pris2")) then
        fejl = 1
        pris = rs("pris1")
        navn = rs("navn1") &" og "& rs("navn2")
    end if
    response.write("Varen: "& rs("varenummer") & rs("b") &"")
    if (fejl) then
        response.write("sælges til samme pris ("& pris &") hos "& navn &"<br>")
    else
        response.write("sælges billigst ("& pris &") hos "& navn &"<br>" )
    end if
    fejl = 0
    rs.movenext
loop

%>

men den viser stadig ikke den vare der kun er en af...

altså hvis
tabel1 har 3 varenummer
og
tabel2 har4 varenummer

viser den ikke vare nummer 4 ?
Avatar billede -thomas- Nybegynder
17. september 2003 - 16:22 #25
Virker det så ikke med LEFT JOIN?
Avatar billede l_otto Nybegynder
17. september 2003 - 16:25 #26
desværre ikke den vil ikke tage dem med der ikke har ens varenummer ?
Avatar billede l_otto Nybegynder
17. september 2003 - 16:27 #27
tilbage i morgen...

prøv den selv med en lille db.. :-)
Avatar billede eagleeye Praktikant
17. september 2003 - 23:23 #28
Det jeg mener med union og i en SQL er dette:


SQL = "SELECT t1.levnavn, t1.pris, t1.varenummer "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer FROM tabel1 UNION ALL SELECT levnavn, pris, varenummer FROM tabel2) as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer FROM (SELECT pris, varenummer FROM tabel1 UNION ALL SELECT pris, varenummer FROM tabel2) GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer;"

------------
Som test kan du prøve dette, du forudsætte du har to tabeller, tabel1 og tabel2 så skal du ikke rette i noget kun lave en connection til din database:


SQL = "SELECT t1.levnavn, t1.pris, t1.varenummer "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer FROM tabel1 UNION ALL SELECT levnavn, pris, varenummer FROM tabel2) as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer FROM (SELECT pris, varenummer FROM tabel1 UNION ALL SELECT pris, varenummer FROM tabel2) GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer;"

Set rs = Conn.Execute(SQL)

Response.Write "<table>"
if not rs.EOF then
  Response.Write "<tr>"
  for each f in rs.Fields
    Response.Write "<td>" & f.name & "</td>"
  next
  Response.Write "</tr>"
end if
Response.Write "<tr><td>"
Response.Write rs.GetString (, -1, "</tr><td>", "</td></tr><tr><td>", NBSPACE) 
response.write "</table>"
Avatar billede l_otto Nybegynder
18. september 2003 - 09:04 #29
hej E..

det er godt det der ! men hvordan får jeg varebeskrvelsen med "DescShort" ?

og hvis nu jeg har en trejde tabel...
Avatar billede l_otto Nybegynder
18. september 2003 - 09:32 #30
og så er der en lille en, hvis der er to vare der har den samme pris viser den varene to gange der skal den kun vise den engang og vælge levnavn fra tabel1.
Avatar billede l_otto Nybegynder
18. september 2003 - 11:39 #31
Hej E... er vi online.. det er så godt det du har lavet der.. skal bare lige have det sidste på plads..
Avatar billede l_otto Nybegynder
18. september 2003 - 13:27 #32
ok, nu fik jeg selv den med  t1.DescShort med, men den skriver stadig den vare der har samme pris ud til gange... ?

og så er der den vis nu der er en trejde tabel..
Avatar billede l_otto Nybegynder
18. september 2003 - 15:50 #33
hej E.. er du klar :-)
den skriver stadig den vare der har samme pris ud til gange... ?

og så er der den vis nu der er en trejde tabel..
Avatar billede eagleeye Praktikant
18. september 2003 - 21:18 #34
Jeg ved ikke helt hvordan man kun får den med som er i tabel1 hvis der er flere med samme pris.

dui kan tilføje flere tabeller ved at tilføje denne til den første UNION ALL liste som hedder t1
UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel3

Samt denne ved den anden UION ALL lige før ) GROUP BY varenummer
UNION ALL SELECT pris, varenummer FROM tabel3


Så den ser sådan her ud:

SQL = "SELECT t1.levnavn, t1.pris, t1.varenummer, t1.DescShort "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer, DescShort FROM tabel1 UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel2 UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel3) as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer FROM (SELECT pris, varenummer FROM tabel1 UNION ALL SELECT pris, varenummer FROM tabel2  UNION ALL SELECT pris, varenummer FROM tabel3) GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer;"
Avatar billede eagleeye Praktikant
18. september 2003 - 21:20 #35
For bedre at kunne overskue det kan det skrive op på flere linjer:

SQL = "SELECT t1.levnavn, t1.pris, t1.varenummer, t1.DescShort "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer, DescShort FROM tabel1 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel2 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel3) "
SQL = SQL & "as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer "
SQL = SQL & "FROM (SELECT pris, varenummer FROM tabel1 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel2 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel3 "
SQL = SQL & ") GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer;"
Avatar billede satanic_raven Nybegynder
19. september 2003 - 01:31 #36
For kun at få vist den ene af tabellerne med priser, må du over i javascript.

Bare lav følgende script:

<script language="javascript">
    function TjekTabel()
        {
        Tabel1 = "Navnet_på_den_formular_du_har_tabellerne_i.Navnet_på_den_ene_tabel"
        Tabel2 = "Navnet_på_den_formular_du_har_tabellerne_i.Navnet_på_den_anden_tabel"

        if(document[Tabel1].value == document[Tabel2].value)
            {
            document[Tabel2].type = "hidden";
            }
        }
</script>

I dit "<body>"-tag indsætter du så: onload="java script:TjekTabel()"

Så skulle det med de ens tabeller være løst...

Ellers må du jo lige brokke dig, og så skal jeg nok lige teste det hele først...

S.R.
Avatar billede l_otto Nybegynder
19. september 2003 - 08:46 #37
hej SR.


Det kan jeg ikke helt finde ud af, har du mulighed for at hjælpe  sådan se det ud nu ... nu har jeg tre tabeller med :-) jeg har ikke rigtig nogen formular ?

<script language="javascript">
    function TjekTabel()
        {
        Tabel1 = "Navnet_på_den_formular_du_har_tabellerne_i.Tabel1"
        Tabel2 = "Navnet_på_den_formular_du_har_tabellerne_i.Tabel2"
        Tabel3 = "Navnet_på_den_formular_du_har_tabellerne_i.Tabel3"
        if(document[Tabel1].value == document[Tabel2].value)
            {
            document[Tabel2].type = "hidden";
            }
        }
</script>
<BODY onload="java script:TjekTabel()">



<%

' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("ll.mdb")
' Åben databaseforbindelsen
Conn.Open DSN

%>

<!-- <a href="intel.asp">se Lexmark produkter.</a><BR><BR> -->


<%
SQL = "SELECT  t1.varenummer, t1.DescShort, t1.pris, t1.levnavn  "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer, DescShort FROM tabel1 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel2 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel3) "
SQL = SQL & "as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer "
SQL = SQL & "FROM (SELECT pris, varenummer FROM tabel1 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel2 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel3 "
SQL = SQL & ") GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer;"

Set rs = Conn.Execute(SQL)

Response.Write "<table>"
if not rs.EOF then
  Response.Write "<tr>"
  for each f in rs.Fields
    Response.Write "<td>" & f.name & "</td>"
  next
  Response.Write "</tr>"
end if
Response.Write "<tr><td>"
Response.Write rs.GetString (, -1, "</tr><td>", "</td></tr><tr><td>", NBSPACE) 
response.write "</table>"
%>
Avatar billede l_otto Nybegynder
19. september 2003 - 08:47 #38
Hej E

det virker jo he... men nu har jeg rodet med at de skal stå Order by varenummer men den kan jeg ikke få til at virke..

p
Avatar billede l_otto Nybegynder
19. september 2003 - 08:55 #39
hej S.R

Faktisk skal den sige.. hvis prisen er ens skal den vise alle levnavne altså:

varnummer  Dechsort    pris    levnavn
1234      saab 9000    5000    saab brønshøj, saab ishøj, SR biler.

håber du forstår
Avatar billede eagleeye Praktikant
19. september 2003 - 19:45 #40
Du skal skriver ORDER BY t1.varenummer sådan her:

SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer ORDER BY t1.varenummer;"
Avatar billede l_otto Nybegynder
22. september 2003 - 09:18 #41
Hej E
ja det virker... men så har jeg bare den med hvis prisen er ens skal den vise alle levnavne altså:

varnummer  Dechsort    pris    levnavn
1234      saab 9000    5000    saab brønshøj, saab ishøj, SR biler.

og ikke vise varen tre gange som den gør nu...

peter
Avatar billede eagleeye Praktikant
22. september 2003 - 16:53 #42
Ja ok, men det kræver noget kode som udskriver recordsetet og tjekke hver vare om der er flere vare med samme varenummer. Og ikke  det som jeg har vist som udskriver hele recordetet på en gang.
Avatar billede l_otto Nybegynder
22. september 2003 - 21:26 #43
er det svært at flette ind for det du har lavet der er rigtig godt ?
Avatar billede eagleeye Praktikant
22. september 2003 - 21:33 #44
Nej det er muligt, et eksemple på koden:


SQL = "......."

Set rs = Conn.Execute(SQL)

lastvare=""
Response.Write "<table>"
Response.Write "<tr><td>varnummer</td><td>Dechsort</td><td>pris</td><td>levnavn</td></tr>"
do while not rs.EOF
  if lastvare = rs("varenummer") then
    if lastvare <> "" then Response.Write ", " & rs("levnavn")
  else
    if lastvare <> "" then Response.Write "</tr>"
    lastvare = rs("varenummer")
    Response.Write "<tr>"
    Response.Write "<td>" & rs("varenummer") & "</td>"
    Response.Write "<td>" & rs("dechsort") & "</td>"
    Response.Write "<td>" & rs("pris") & "</td>"
    Response.Write "<td>" & rs("levnavn") & "</td>"
  end if
  rs.Movenext
loop
Response.Write "</tr>"
Response.Write "</table>"
Avatar billede l_otto Nybegynder
23. september 2003 - 10:09 #45
YES.. nu virker det bare godt... kan man ligge 25 % på vores billigste pris også sammenlinge resultaterne med en fjerde tabel4, og sige hvis vores pris er billigere < end prisen i tabel4 indsæt resultatet i tabel5. hvis ikke + 30% i stedet.

håber du forstår...

hvis ikke noget af det kan lade sig gøre, så kunne jeg godt tænke mig den sagde vores billigste resultat + 25% indsættes i tabel5

det er så godt det her..:-)
Avatar billede l_otto Nybegynder
26. september 2003 - 15:22 #46
Hej E...

kan du ikke hjælpe med det sidste her....

jeg kan ikke får det ind i en tabel4

peter
Avatar billede satanic_raven Nybegynder
27. september 2003 - 00:51 #47
Ikke for at blande mig, men du har fået virkeligt meget hjælp for 30 point.

S.R.
Avatar billede l_otto Nybegynder
27. september 2003 - 20:57 #48
hmm jeg giver gerne mange flere.. men Eagel har ikke vent tilbage og jeg har oprette sprg. igen til 60.
Avatar billede eagleeye Praktikant
28. september 2003 - 02:34 #49
Beklager jeg ikke har svaret før nu, men jeg har være væk de sidste par dage..

Dér ligger en masse udregninger som jeg lige ser det, problemmet er der hele tiden komme lige en ting mere og så lige en ting mere på. Løsningen er afhængig af problemmet og ændre problemmet sig ændre løsningen sig.

Det kan være du skal for hvert varenummer trække en post ud af tabel4 og sammenligen pris med det varenummer man er kommet til inden man udsjkriver det, du kan ligge 25% ved at gange med 1.25 og ligge 30% til ved at gange med 1.3
Avatar billede satanic_raven Nybegynder
29. september 2003 - 20:17 #50
Du behøver ikke at oprette et nyt spg. for at tildele flere point...

Oppe i øverste venstre hjørne af dit "start-spg." står der hvor mange point du udlodder til den der gi'r et acceptabelt svar. Ved at trykke på det lille flag til venstre for pointene, kan du ændre hvor mange point du vil gi' væk...

S.R.
Avatar billede l_otto Nybegynder
30. september 2003 - 09:22 #51
HEj E. ok men hvad siger du til at bare sætte resultatet ind i en tabel4. ?
Avatar billede eagleeye Praktikant
30. september 2003 - 17:09 #52
Du kan i SQL lave en INSERT INTO og så putte resultet direkte ind i tabel4 sådan her:


SQL = "INSERT INTO tabel4 (levnavn, pris, varenummer, DescShort) SELECT t1.levnavn, t1.pris, t1.varenummer, t1.DescShort "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer, DescShort FROM tabel1 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel2 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel3 "
SQL = SQL & ") as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer "
SQL = SQL & "FROM (SELECT pris, varenummer FROM tabel1 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel2 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel3 "
SQL = SQL & ") GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer ORDER BY t1.varenummer;"
Avatar billede l_otto Nybegynder
30. september 2003 - 21:41 #53
den sætter det fint ind i tabel4 med denne kode

<%
SQL = "INSERT INTO tabel4 (levnavn, pris, varenummer, DescShort) SELECT t1.levnavn, t1.pris, t1.varenummer, t1.DescShort "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer, DescShort FROM tabel1 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel2 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel3) "
SQL = SQL & "as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer "
SQL = SQL & "FROM (SELECT pris, varenummer FROM tabel1 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel2 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel3 "
SQL = SQL & ") GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer ORDER BY t1.varenummer;"

Set rs = Conn.Execute(SQL)

lastvare=""
Response.Write "<table>"
Response.Write "<tr><td>varenummer</td><td>Dechsort</td><td>pris</td><td>levnavn</td></tr>"
do while not rs.EOF
  if lastvare = rs("varenummer") then
    if lastvare <> "" then Response.Write ", " & rs("levnavn")
  else
    if lastvare <> "" then Response.Write "</tr>"
    lastvare = rs("varenummer")
    Response.Write "<tr>"
    Response.Write "<td>" & rs("varenummer") & "</td>"
    Response.Write "<td>" & rs("DescShort") & "</td>"
    Response.Write "<td>" & rs("pris") & "</td>"
    Response.Write "<td>" & rs("levnavn") & "</td>"
  end if
  rs.Movenext
loop
Response.Write "</tr>"
Response.Write "</table>"
%>

men jeg får denne fejl:

varenummer Dechsort pris levnavn
ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.

/x/intel.asp, line 46
Avatar billede l_otto Nybegynder
30. september 2003 - 21:42 #54
linie 46 =  if lastvare <> "" then Response.Write ", " & rs("levnavn")
Avatar billede l_otto Nybegynder
30. september 2003 - 21:57 #55
super jeg har fikset det laver bare to sider en til at vise og en der inserter i tabel4. og så kunne jeg så godt tænke mig at den lige lagde 25% oven i det resultat den skrev ind i tabel4 så det der stod der var den bedste pris + 25 % hvordan er det lige du siger jeg kan sætte det ind i denne kode ?

<%
SQL = "INSERT INTO tabel4 (levnavn, pris, varenummer, DescShort) SELECT t1.levnavn, t1.pris, t1.varenummer, t1.DescShort "
SQL = SQL & "FROM (SELECT levnavn, pris, varenummer, DescShort FROM tabel1 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel2 "
SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel3) "
SQL = SQL & "as t1, "
SQL = SQL & "(SELECT min(pris) as mpris, varenummer "
SQL = SQL & "FROM (SELECT pris, varenummer FROM tabel1 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel2 "
SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel3 "
SQL = SQL & ") GROUP BY varenummer) as t2 "
SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer ORDER BY t1.varenummer;"

Set rs = Conn.Execute(SQL)

%>


så er jeg snart en glad mand og jeg har sat alle mine point på det... :-)
Avatar billede eagleeye Praktikant
30. september 2003 - 22:25 #56
Prøv at tilføje *1.25 ved t1.pris så denne linje:

SQL = "INSERT INTO tabel4 (levnavn, pris, varenummer, DescShort) SELECT t1.levnavn, t1.pris, t1.varenummer, t1.DescShort "

Bliver til:

SQL = "INSERT INTO tabel4 (levnavn, pris, varenummer, DescShort) SELECT t1.levnavn, t1.pris * 1.25, t1.varenummer, t1.DescShort "
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel