Gå til innhold

Anbefalte innlegg

Hallo, sliter litt med å få til en spørring her...

 

Tabellene er:

 

POST(PostNr, PostSted)

KUNDE(KundeNr, Etternavn, Fornavn, GateAddresse, PostNr)

ORDRE(OrdreNr, KundeNr, Dato)

ORDRELINJE(OrdreNr, VareNr, Antall)

VARE(VareNr, Beskrivelse, LagerAntall)

 

og oppgaven er:

 

Finner etternavn og varebeskrivelse til alle kunder som har bestilt varer som

begynner på "St"

 

Det jeg har kommet fram til er..

 

Select K.Etternavn, V.Beskrivelse

From Ordre O, Kunde K, Vare V, Ordrelinje OL

where O.KundeNR=K.KundeNR

AND OL.VareNR=K.VareNR

AND V.Beskrivelse=?+

 

Her stopper det for meg... Finner ikke funksjonen som leter etter ting som starter opp med ST...

 

Kan noen hjelpe meg her?

(Er ikke veldig stø i SQL, men prøver.)

Lenke til kommentar
Videoannonse
Annonse

Okay, ut ifra den samme tabellen skal jeg finner etternavn, gateadresse, postnr, poststed for alle kunder som har mer enn 5

ordre.

 

Da har jeg fått dette:

 

SELECT O.Etternavn, O.Gateaddresse, O.PostnNr, O.Poststed

FROM Ordre O, Kunde K

WHERE O.KundeNr = K.KundeNr

AND Ordre COUNT >5

 

Vil ikke dette bli riktig?

 

Takk for svar.

Lenke til kommentar
AND V.Beskrivelse='St%'

6038104[/snapback]

Eller bedre:

 

AND V.Beskrivelse LIKE 'St%'

 

I denne sammenheng siterer jeg SQL99 standarden:

<like predicate> uses the triadic operator LIKE (or the inverse, NOT LIKE), operating on three

character strings and returning a Boolean. LIKE determines whether or not a character string

‘‘matches’’ a given ‘‘pattern’’ (also a character string). The characters <percent> and <underscore>

have special meaning when they occur in the pattern.

Lenke til kommentar
Okay, ut ifra den samme tabellen skal jeg finner etternavn, gateadresse, postnr, poststed for alle kunder som har mer enn 5

ordre.

 

Da har jeg fått dette:

 

SELECT  O.Etternavn, O.Gateaddresse, O.PostnNr, O.Poststed

FROM  Ordre O, Kunde K

WHERE  O.KundeNr = K.KundeNr

AND            Ordre COUNT >5

 

Vil ikke dette bli riktig?

 

Takk for svar.

6038229[/snapback]

Som regel skal du gjøre noe med dataene slik at det ikke gjør noe om du får med en ekstra kolonne, da kan du bruke noe i retning av dette:

 

SELECT K.Etternavn, K.Gateaddresse, K.PostNr, K.Poststed, count(O.OrdreNo) as 'Antall'

FROM Ordre O inner join Kunde K on (O.KundeNr = K.KundeNr)

HAVING count(o.OrdreNo) > 5

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...