Linuxx Skrevet 7. oktober 2010 Del Skrevet 7. oktober 2010 Jeg trenger hjelp med en delspørring... Problemet er å opprette SQL setningen for å finne ansatte i avdeling 10 med samme stillinger som i avdeling 30 SELECT navn, jobb FROM "tabellnavn" WHERE ? ? ? Lenke til kommentar
kaffenils Skrevet 7. oktober 2010 Del Skrevet 7. oktober 2010 Nå har du ikke vist oss noen tabelldefinisjoner, så hvis spørringen jeg skriver ikke fungerer så ligger ikke skylden hos meg. Antar at kolonnen jobb er det du kaller stilling? select navn, jobb from tabell where avdeling=10 intersect select navn, jobb from tabell where avdeling=30 Lenke til kommentar
MikkelRev Skrevet 7. oktober 2010 Del Skrevet 7. oktober 2010 Noe sånt?? SELECT navn, jobb FROM ansatte WHERE avdeling=10 AND stilling = ( SELECT stilling FROM ansatte WHERE avdeling=30 ) Er fordel om du hadde gitt tabellstrukturen ja. Lenke til kommentar
kaffenils Skrevet 7. oktober 2010 Del Skrevet 7. oktober 2010 @MikkelRev: Spørringen din vil ikke fungere. Du bruker = i stedet for IN mot subspørringen. Og uansett om du benytter IN så vil den returnere feil resultat siden det ikke er noen korrelasjon mellom rader i den ytre og indre spørringen. en kan skrive den om til å bruke en korrelert subspørring sammen med EXISTS(), men det er mye enklere og mer lesbart å bruke INTERSECT... synes nå jeg. Lenke til kommentar
Wolverin Skrevet 8. oktober 2010 Del Skrevet 8. oktober 2010 (endret) Jeg trenger hjelp med en delspørring... Problemet er å opprette SQL setningen for å finne ansatte i avdeling 10 med samme stillinger som i avdeling 30 SELECT navn, jobb FROM "tabellnavn" WHERE ? ? ? Nå har du jo ikke gitt oss noe indikasjon på hvilken database du har da, men prøver likevel på noen tips. Dersom det er oracle base og du skal gjøre det du ber om, så kan du spørre på en av disse to måtene. select navn, jobb from tabell1 where (navn || jobb) in ( select (navn || jobb) from tabell2); eller select navn,jobb from tabell1 where (navn,jobb)exist in select (navn, jobb) from tabell2; Eller du kan selvsagt benytte intersect som nevnt tidlgiere. Det er mange måter å gjøre det samme på. Dersom det er MS SQL, så er || byttet ut med & tegnet. Det kjeder sammen teksten fra to eller flere felter. lykke til. Endret 8. oktober 2010 av Wolverin Lenke til kommentar
Linuxx Skrevet 12. oktober 2010 Forfatter Del Skrevet 12. oktober 2010 Beklager manglende informasjon...dette er helt nytt for meg! Det er oracle base. Problemet med spørringen er at man får ikke opp de personene som har samme stilling i de to avdelingene.. Lenke til kommentar
Wolverin Skrevet 24. oktober 2010 Del Skrevet 24. oktober 2010 Beklager manglende informasjon...dette er helt nytt for meg! Det er oracle base. Problemet med spørringen er at man får ikke opp de personene som har samme stilling i de to avdelingene.. Ta en desc på tabellene først. Du må sjekke at kriteriene du spør på er av lik type (char = tekst, number = tall osv.) Dersom de ikke er av samme type, vil du ikke se dem som like, da må du i så fall konvertere/caste feltet i en av tabellene, så den blir lik med den andre tabellen. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå