Avatar billede l_otto Nybegynder
16. september 2003 - 10:28 Der er 25 kommentarer og
1 løsning

sammenligne priser fra tabeller

min Sql skal sige:

tabel 1 : har tre felter :varenummer - pris - levnavn
tabel 2 : har tre felter :varenummer - pris - levnavn

godt så skal den sige hvis varenummer er = med hinanden sammenling da pris og vis hvem der er billigst og hvem der så er levnavn.

hvem kan det....? den er ikke nem og jeg håber i forstår..
Avatar billede eagleeye Praktikant
16. september 2003 - 10:32 #1
Ok som en SQL sætning som finder den billigste eller skal du havde alle priser og leveradøre med ud?
Avatar billede eagleeye Praktikant
16. september 2003 - 10:42 #2
vil samme vare altid være i begge tabller?
Hvis en vare kun er i en tabel som den så medtages ligemeget hvilken tabel den er i??
Avatar billede l_otto Nybegynder
16. september 2003 - 10:45 #3
nej den skal bare vise den billigste...

nej det er ikke altid den vil være der...

ja den skal med hvis det er den eneste...

super
Avatar billede c Nybegynder
16. september 2003 - 10:48 #4
hmm.... da der er beregninger med, så vil jeg foreslå at bruge ASP til at beregne på det...

SQL = "SELECT tabel1.levnavn AS navn1, tabel2.levnavn AS navn2, tabel1.pris AS pris1, tabel2.pris AS vn2, tabel1.varenummer FROM tabel1 INNER JOIN tabel2 ON tabel1.varenummer=tabel2.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("navn"")
    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") &"<br>")
    if (fejl) then
        response.write("sælges til samme pris ("& pris &") hos "& navn
    else
        response.write("sælges billigst ("& pris &") hos "& navn
    end if
    rs.movenext
loop


Det var mit bedste bud...
Avatar billede l_otto Nybegynder
16. september 2003 - 11:06 #5
denne fejl?

Microsoft VBScript compilation error '800a0409'

Unterminated string constant

/x/default.asp, line 37

navn = rs("navn2"")
-------------------^


du havde glemt at skrive navn2 men det rettede jeg... så hvorfor fejl nu ?
Avatar billede l_otto Nybegynder
16. september 2003 - 11:12 #6
ok "" har set den to sek
Avatar billede l_otto Nybegynder
16. september 2003 - 11:16 #7
den er lige ved at være der... men:

Microsoft VBScript compilation error '800a03ee'

Expected ')'

/x/default.asp, line 46

response.write("sælges til samme pris ("& pris &") hos "& navn
Avatar billede l_otto Nybegynder
16. september 2003 - 11:41 #8
hej E...

er du der.. ? :-)
Avatar billede eagleeye Praktikant
16. september 2003 - 11:50 #9
Det var nok mere C du skulle spørge efter ;)

men der mangler et ) til sidst:
response.write("sælges til samme pris ("& pris &") hos "& navn)

Eller fjern det første (:
response.write "sælges til samme pris ("& pris &") hos "& navn
Avatar billede eagleeye Praktikant
16. september 2003 - 11:52 #10
det gælder også for linjen efter, der skal du også enten tilføje ) eller fjerne (:

  response.write("sælges billigst ("& pris &") hos "& navn
Avatar billede l_otto Nybegynder
16. september 2003 - 11:54 #11
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") &"<br>")
    if (fejl) then
        response.write("sælges til samme pris ("& pris &") hos "& navn )
    else
        response.write("sælges billigst ("& pris &") hos "& navn )
    end if
    rs.movenext
loop

%>
Avatar billede l_otto Nybegynder
16. september 2003 - 11:54 #12
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '331208P3.pris'.

/x/default.asp, line 28 = Set rs=conn.execute(SQL)
Avatar billede l_otto Nybegynder
16. september 2003 - 12:11 #13
nu virker det sgu...

men hvad nu hvis jeg skal have en trejde og fjerde tabel med???
Avatar billede l_otto Nybegynder
16. september 2003 - 12:11 #14
<%


SQL = "SELECT tabel1.levnavn AS navn1, tabel2.levnavn AS navn2, tabel1.pris AS pris1, tabel2.pris AS pris2, tabel1.varenummer FROM tabel1 INNER JOIN tabel2 ON tabel1.varenummer=tabel2.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") &"<br>")
    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 eagleeye Praktikant
16. september 2003 - 12:35 #15
Hvis du skal hvade flere tabeller med så skal SQL sætningen samt koden laves om.

EKS, jeg ved ikke helt om det virker:
SQL = "SELECT tabel1.levnavn AS navn1, tabel2.levnavn AS navn2, tabel1.pris AS pris1, tabel2.pris AS pris2, tabel1.varenummer, tabel3.navn as navn3, tabel3.pris as pris3 FROM (tabel1 INNER JOIN tabel2 ON tabel1.varenummer=tabel2.varenummer) INNER JOIN tabel3 ON tabel1.varenummer=tabel3.varenummer"
Avatar billede l_otto Nybegynder
16. september 2003 - 14:06 #16
sidste ting vis nu jeg gerne vil have at denne priserme bliver vist + 25%

hvordan gør jeg det smartest?
Avatar billede l_otto Nybegynder
16. september 2003 - 14:33 #17
er I der ? :-)
Avatar billede eagleeye Praktikant
16. september 2003 - 17:00 #18
Ligge 25% til så prøv:

pris = rs("pris1") * 1.25
Avatar billede l_otto Nybegynder
17. september 2003 - 12:08 #19
hej c

håber du er der ned holder alligvel ikke helt der er hvis pris1 er dyrer en pris 2 skriver den bare sælges til samme pris (709.9) hos lev2 ?

og den skriver ikke alle produkterne ud ?
Avatar billede c Nybegynder
17. september 2003 - 13:34 #20
SQL = "SELECT tabel1.levnavn AS navn1, tabel2.levnavn AS navn2, tabel1.pris AS pris1, tabel2.pris AS vn2, tabel1.varenummer FROM tabel1 INNER JOIN tabel2 ON tabel1.varenummer=tabel2.varenummer"
Set rs=conn.execute(SQL)

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

virker den?
Avatar billede l_otto Nybegynder
17. september 2003 - 13:55 #21
ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/x/default.asp, line 31 =  if (rs("pris1")=rs("pris2")) then
Avatar billede l_otto Nybegynder
17. september 2003 - 14:12 #22
c.  den kan ikke finde ud af det efter der har været to med samme pris...
<%

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 l_otto Nybegynder
17. september 2003 - 14:20 #23
faktisk er det fra produkt tre og frem uanset hvad priserne er, der tager den ikke den billigst..
Avatar billede c Nybegynder
17. september 2003 - 14:32 #24
hmm... nu gemmer du dem vel i tal felter,ik?
Avatar billede l_otto Nybegynder
17. september 2003 - 14:38 #25
jo da:-) nu virker det..

men hvis der ikke er to ens varenummer viser den den ikke ?
Avatar billede l_otto Nybegynder
17. september 2003 - 14:50 #26
jamen hovsa .. der er jo også varenumre med bogstaver i ? hvad så
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