Bsp 4
Results 1 to 16 of 16

Thread: Bsp 4

  1. #1

    Title
    Principal
    Join Date
    Feb 2002
    Location
    Reintal
    Posts
    56
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Bsp 4

    Danke gst für deine Mühe das alles abzutippseln.

    Ich hätte da aber eine Frage zum Bsp 4 -- Sollen da nicht alle Bücher ausgegeben werden und die, die keine Exemplar im Regal Nr 5 haben einen NULL-Wert enthalten? Oder hab ich das falsch verstanden?

    Lg

  2. #2

    Title
    Hero
    Join Date
    Feb 2002
    Posts
    218
    Thanks
    0
    Thanked 0 Times in 0 Posts
    hmm.. ja,tnx - hab mich bei der angabe verlesen :/

  3. #3
    LordOfTheBite's Avatar
    Title
    Hero
    Join Date
    Feb 2002
    Location
    Vienna
    Posts
    191
    Thanks
    2
    Thanked 0 Times in 0 Posts
    da es in der deutschen sprache manchmal vieldeutigkeiten gibt, wäre eine klammernsetzung in der angabe vielleicht hilfreich.

    schreiben sie eine sql anfrage, welche (die titel aller bücher und die anzahl der jeweiligen exemplare) in regal nummer 5 berechnet

    schreiben sie eine sql anfrage, welche (die titel aller bücher) und (die anzahl der jeweiligen exemplare in regal nummer 5) berechnet

    also ich denke fall 1 ist sinnvoller, interpretieren kann man es natürllich auch als fall 2, wo man für alle bücher die nicht in regal 5 sind 0 ausgeben muss (NULL würde heißen man weiß nichts über das buch, 0 heißt man weiß es sind genau 0 davon im regal)

    peter

  4. #4

    Title
    Hero
    Join Date
    Feb 2002
    Posts
    218
    Thanks
    0
    Thanked 0 Times in 0 Posts
    hmm... stimmt... nachdem ich mir die angabe noch ein 3. mal durchgelesen hab wuerd ich meine loesung doch wieder als richtig interpretieren ;)

    naja... werd doch einmal die alte loesung vorerst so lassen...

  5. #5

    Title
    Principal
    Join Date
    Feb 2002
    Location
    Reintal
    Posts
    56
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Stimmt LordOfThe Bite --- vielleicht werde ich am Di nach der VO fragen, wie das jetzt genau gemeint ist.

  6. #6
    Zentor's Avatar
    Title
    CO-Administrator
    Join Date
    Dec 2001
    Location
    Wien???
    Posts
    1,156
    Thanks
    2
    Thanked 9 Times in 6 Posts
    Aus reiner Neugier, wie würde die Anfrage für die 2.Formulierung aussehn?
    mfg Zentor

  7. #7
    LordOfTheBite's Avatar
    Title
    Hero
    Join Date
    Feb 2002
    Location
    Vienna
    Posts
    191
    Thanks
    2
    Thanked 0 Times in 0 Posts
    die anfrage für die 2. formulierung würde ich mittels einer union mit allen vorhandenen bücher-exemplaren machen, wo ich danach vom count 1 abziehe (so habe ich noch ein paar andere probleme gelöst)

    würde so aussehen (ca):

    Code:
    select
     u.titel, count(*)-1 as anzahl
    from (
     select
      b.titel
     from
      buch b
      natural join exemplar e
      natural join ausleihe a
     where
      a.bis is null
      and e.regalnr=5
     union all
     select
      bb.titel
     from
      buch bb
      natural join exemplar ee
     where
      ee.regalnr=5
     ) as u
    group by u.titel;
    macht spaß, oder ?



    edit: habs jetzt getestet, funktioniert auf der websql-datenbank (es kommt sogar ein nullwert, vorausgesetzt die haben meinen frisch inserteten datensatz noch nicht gekillt)

  8. #8
    Zentor's Avatar
    Title
    CO-Administrator
    Join Date
    Dec 2001
    Location
    Wien???
    Posts
    1,156
    Thanks
    2
    Thanked 9 Times in 6 Posts
    uffff:eek: also das schaut nicht mehr trivial aus.
    mfg Zentor

  9. #9
    thita's Avatar
    Title
    Master
    Join Date
    Feb 2002
    Location
    Wien
    Posts
    162
    Thanks
    0
    Thanked 1 Time in 1 Post
    Original geschrieben von LordOfTheBite
    edit: habs jetzt getestet, funktioniert auf der websql-datenbank (es kommt sogar ein nullwert, vorausgesetzt die haben meinen frisch inserteten datensatz noch nicht gekillt)
    jo, ich habs mit deinem code jetzt auch getestet, aber es werden ja trotzdem nicht alle bücher angezeigt!! es müssten 27-30 bücher sein, bei 7 sollte ein ergebnis herauskommen, bei den anderen 23 sollte 0 stehen.......bei deiner codierung sind es insgesamt nur 9 bücher......das kann ja gar nicht stimmen.....ODER?

  10. #10
    LordOfTheBite's Avatar
    Title
    Hero
    Join Date
    Feb 2002
    Location
    Vienna
    Posts
    191
    Thanks
    2
    Thanked 0 Times in 0 Posts
    du hast recht, mein fehler

    richtig ist

    Code:
    select
     u.titel, count(*)-1 as anzahl
    from (
     select
      b.titel
     from
      buch b
      natural join exemplar e
      natural join ausleihe a
     where
      a.bis is null
      and e.regalnr=5
     union all
     select
      distinct bb.titel
     from
      buch bb
     ) as u
    group by u.titel;

    man beachte das select nach dem union all -> ich hatte da noch ein where und ein join zuviel

    peter

  11. #11

    Title
    Principal
    Join Date
    Feb 2002
    Location
    Wien 23
    Posts
    50
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Also, ich versteh die Angabe so, dass wir die Bücher raussuchen sollen, die theoretisch im Regal stehen würden, wenn keines verliehen ist. (es steht ja, es wird nicht berücksichtigt, ob ein Buch ausgeliehen ist, also tun wir so, als wär es da). In dem Fall brauch ich ja aber die Relation Ausleihe gar nicht.

    Ausschaun würd das bei mir dann so:


    select distinct Titel, count (InvNr) as Anzahl
    from Buch join Exemplar using (ISBN)
    where RegalNr = 5
    group by Titel


    lg, Geli
    Last edited by Geli; 17-05-2002 at 23:35.

  12. #12
    LordOfTheBite's Avatar
    Title
    Hero
    Join Date
    Feb 2002
    Location
    Vienna
    Posts
    191
    Thanks
    2
    Thanked 0 Times in 0 Posts
    @geli: bitte schau, dass du zumindest einmal die query ausprobierst bevor du sie postest (die fehlermeldungen der websql.dbai.tuwien.ac.at datenbank sind doch hilfreich)

    deine query hat folgende syntaktischen fehler:
    ein subselect im from muss immer ein alias haben ->

    select ... from (select ... from ...) AS ALIAS where ...

    außerdem musst du wenn du countest andere felder die du ausgeben willst gruppieren ->

    + group by titel

    außerdem hattest du folgenden denkfehler:
    du willst ja die buchanzahl pro titel und nicht "1" für jeden titel,
    also darfst du NICHT distinct counten:

    die richtige query wäre:

    Code:
    select x.Titel, count (x.Titel)
    from
    (select *
    from buch, Exemplar
    where Buch.ISBN = Exemplar.ISBN
    ) as x
    where x.RegalNr =5
    group by x.titel
    allerdings gehts auch einfacher:

    Code:
    select
      b.titel, count(e.invnr)
    from
     buch b natural join exemplar e
    where
     e.regalnr=5
    group by
     b.titel
    peter

  13. #13

    Title
    Principal
    Join Date
    Feb 2002
    Location
    Wien 23
    Posts
    50
    Thanks
    0
    Thanked 0 Times in 0 Posts
    @Lordofthebite

    Ja, sorry, hab meine Fehler auch schon entdeckt, aber das mit dem alias hab ich irgendwie nicht verstanden.

    habs dann eh so ähnlich gemacht wie du, allerdings funktioniert das sehr wohl auch mit distinct titel. Zumindest is das Ergebnis in der Datenbank richtig.

    lg, Geli

  14. #14

    Title
    Master
    Join Date
    Feb 2002
    Posts
    126
    Thanks
    0
    Thanked 0 Times in 0 Posts
    wieso funzt diese query nicht? sie gibt nich die genaue anzahl der mehrfach vorhandenen bücher aus.

    select Titel, count(Titel) as Anzahl from Buch
    where ISBN in
    (select ISBN from Exemplar where RegalNr = '5')
    group by Titel

  15. #15
    LordOfTheBite's Avatar
    Title
    Hero
    Join Date
    Feb 2002
    Location
    Vienna
    Posts
    191
    Thanks
    2
    Thanked 0 Times in 0 Posts
    weil du von buch selectest und da nur jedes buch und nicht jedes exemplar drinnen ist

    du müsstest buch noch auf exemplar joinen, das ginge, ist aber imho nicht so wirklich sauber

    peter

  16. #16

    Title
    Master
    Join Date
    Feb 2002
    Posts
    126
    Thanks
    0
    Thanked 0 Times in 0 Posts
    eigentlich eh logisch. hätte ich selber auch draufkommen können! aber irgendwie schwirren schon lauter bücher in meinem hirn rum uns sonst nichts mehr.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •