[interbase] views + selects

Pagina: 1
Acties:

  • TsiisSkaaf
  • Registratie: Oktober 2001
  • Laatst online: 09:26
Ik ben met een project bezig waarbij ik onder ISQL (InterBase) een database heb en die ik vie Delphi 5 uitlees en bewerkingen uitvoer.

Nu wil ik in ISQL een View maken die de eerste 8 rijen van een tabel weergeeft. Ik kom er totaal niet uit.

Is er iemand die mij hiermee kan helpen? Of een plaats weet waar ik hier antwoord op kan vinden?

As it net kin sa os it moat, dan moat it mar sa os it kin.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Misschien een ideetje om eerst te kijken wat een view precies doet voordat je denkt van hey dit ga ik ermee doen en dat dan na verloop van tijd blijkt dat het niet precies doet wat je verwacht.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • TsiisSkaaf
  • Registratie: Oktober 2001
  • Laatst online: 09:26
Dus als ik jou reply goed begrijp kan het niet wat ik wil.
Dus het is niet mogelijk om de eerste 8 rijen van een tabel weer tegeven. Ik moet dan dus in Delphi daar iets op gaan verzinnen.

TNX voor je antwoord!

As it net kin sa os it moat, dan moat it mar sa os it kin.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 20:02 schreef TsiisSkaaf het volgende:
Dus als ik jou reply goed begrijp kan het niet wat ik wil.
Dat zei ik niet, ik doelde op dat je met een view alleen niet de eerste 8 regels terug zal kunnen krijgen.
Dus het is niet mogelijk om de eerste 8 rijen van een tabel weer tegeven. Ik moet dan dus in Delphi daar iets op gaan verzinnen.
Niet nodig, je kunt het nog altijd met een andere SQL commando doen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Maar toevallig ben ik de vorige periode op school bezig geweest met Interbase. En daar hadden we hetzelfde probleem, het kan voor gebruikers van andere sql dialecten een beetje vreemd voorkomen, maar ja, interbase heeft een paar hele vreemde kronkels. (vooral wat betreft statische query's.

Geef de omschrijving van de drie best verkopende (uitgedrukt in aantallen) productsoorten.
code:
1
2
3
4
5
6
7
    CREATE VIEW v_besteldGeleverdPerSoort(soortnr,aantalbesteld , aantalgeleverd)
    AS
        SELECT PS.soortnr, SUM(aantalbesteld), SUM(aantalgeleverd)
        FROM produktsoort PS
            JOIN produkt P ON PS.soortnr = P.soortnr
            JOIN bestelregel BR ON P.produktnr = BR.produktnr
        GROUP BY PS.soortnr


code:
1
2
3
4
5
6
7
    SELECT omschrijving, aantalbesteld
    FROM v_besteldGeleverdPerSoort v_BGPS
        JOIN produktsoort PS ON v_BGPS.soortnr = PS.soortnr
    WHERE 3 > ( SELECT COUNT(*)
            FROM v_besteldGeleverdPerSoort
            WHERE v_BGPS.aantalbesteld < aantalbesteld)
    ORDER BY aantalbesteld DESC

Zoals je ziet wordt er eerst een view gemaakt. Deze view wordt vervolgend gejoined met dezelfde tabel als waar de view op gemaakt is.

Ik ben benieuwd of iemand een betere oplossing hiervoor heeft.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 21:00 schreef The - DDD het volgende:
[...]
Zoals je ziet wordt er eerst een view gemaakt. Deze view wordt vervolgend gejoined met dezelfde tabel als waar de view op gemaakt is.

Ik ben benieuwd of iemand een betere oplossing hiervoor heeft.
Je limiteerd bij de SELECT, NIET bij de VIEW, (wat de vraagsteller dus oorspronkelijk vroeg ;) )

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • TsiisSkaaf
  • Registratie: Oktober 2001
  • Laatst online: 09:26
Heeeel erg bedankt voor jullie reacties. Het is gelukt!

As it net kin sa os it moat, dan moat it mar sa os it kin.


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op donderdag 03 januari 2002 21:51 schreef dusty het volgende:

[..]

Je limiteerd bij de SELECT, NIET bij de VIEW, (wat de vraagsteller dus oorspronkelijk vroeg ;) )
Met de view voeg je extra gegevens toe aan je tabel. Op zich kun je die gegevens in een ander SLQ-dialect prima in 1 qury achterhalen, maar in ISQL kun je statische query's niet nesten.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 21:53 schreef The - DDD het volgende:
[..]
Ja, maar je moet wel is ISQL. Statische query's kun je niet nesten namelijk. Doormiddel van een View omzeil je dit.
Dat weet ik, echter was de vraag:
Nu wil ik in ISQL een View maken die de eerste 8 rijen van een tabel weergeeft
:+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Tuurlijk kan dat, maak van die tweede query van mij een view, zet er dus "CREATE VIEW ... AS" voor en je bent er.

Het kan dus wel degelijk.

Je maakt wel een view die weer gebruik maakt van een view.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 21:56 schreef The - DDD het volgende:
Je maakt wel een view die weer gebruik maakt van een view.
Traag + Extra traag ?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • TsiisSkaaf
  • Registratie: Oktober 2001
  • Laatst online: 09:26
Op donderdag 03 januari 2002 21:56 schreef The - DDD het volgende:
Tuurlijk kan dat, maak van die tweede query van mij een view, zet er dus "CREATE VIEW ... AS" voor en je bent er.
Daat gaat niet lukken om de reden dat in een VIEW geen ORDER BY mag staan.

As it net kin sa os it moat, dan moat it mar sa os it kin.


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Ok, halen we die er toch af. :)

En sja een view van een view of helemaal niet. Interbase is nou ook niet bepaald het DBMS wat je in een bedrijfs netwerk gaat draaien. Interbase is meer iets wat je achter een single-user applicatie hangt.

Computer Totaal heeft er heel veel mee gedaan op hun cdtjes.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

titel aangepast
Pagina: 1