Avatar billede skovtrold Nybegynder
11. september 2002 - 09:53 Der er 6 kommentarer og
1 løsning

Select i select

Hej,

Er det ikke muligt at lave en select i en select i Access?
Jeg forsøger med følgende, men får fejl:

SELECT *, (SELECT Company FROM tblCompany WHERE tblCompany.Id = tblBooking.DayOneCompany) AS DayOneName FROM tblBooking

Fejlen:
Data type mismatch in criteria expression.
Avatar billede lasse_buck Nybegynder
11. september 2002 - 10:46 #1
Uden at gå for meget i detaljer eller specialtilfælde, så ser et simpelt select sådan ud:
SELECT navngivne felter FROM navngivne tabeller WHERE kriterier/joins;

SELECT * FROM...
er et specialtilfælde og kan ikke kombineres med enkeltfelter.

Din select i parantesen er ikke komplet. Jeg har rettet den til.
SELECT tblCompany.Company AS DayOneName FROM tblCompany, tblBooking WHERE tblCompany.Id = tblBooking.DayOneCompany;

Bemærk at da jeg kombinerer flere tabeller (en join), så skal begge tabeller nævnes efter FROM.

Sidste select vælger kun DayOneName, og du vil gerne have alle felterne i tblBooking?
Du kan selv tilføje alle de ønskede felter i forrige select.

- Håber dette bringer dig videre.
Avatar billede skovtrold Nybegynder
11. september 2002 - 13:12 #2
Tak for dit svar.
Jeg har prøvet det, men får følgende fejl:

Type mismatch in expression. ??
Avatar billede lasse_buck Nybegynder
11. september 2002 - 13:25 #3
Er det den her som fejler?
SELECT tblCompany.Company AS DayOneName FROM tblCompany, tblBooking WHERE tblCompany.Id = tblBooking.DayOneCompany;

Har du fået et helt simpelt eksempel til at virke?
SELECT tblCompany.Company FROM tblCompany;
Avatar billede skovtrold Nybegynder
11. september 2002 - 13:31 #4
Det her virker:
SELECT tblCompany.Company AS DayOneName FROM tblCompany, tblBooking

Det går galt når WHERE kommer på...
Avatar billede lasse_buck Nybegynder
11. september 2002 - 13:38 #5
tblCompany.Id = tblBooking.DayOneCompany
Det to felter har ikke samme type. Det ene er et nummer og det andet måske tekst (?) Så skal der en konverteringsfunktion udenom den ene. Jeg kan ikke huske de forskellige konverteringsfunktioner.
Avatar billede skovtrold Nybegynder
11. september 2002 - 13:56 #6
Jeg har nu ændret formatet, så begge felter er numeriske, og det hjalp :-)

Problemet er så at det her egentlig ikke er nok.
Det jeg gerne ville var:

SELECT *, (SELECT Company FROM tblCompany WHERE tblCompany.Id = tblBooking.DayOneCompany) AS DayOneName, (SELECT Company FROM tblCompany WHERE tblCompany.Id = tblBooking.DayTwoCompany) AS DayTwoName, (SELECT Company FROM tblCompany WHERE tblCompany.Id = tblBooking.DayThreeCompany) AS DayThreeName FROM tblBooking

Altså, jeg har 3 felter i tblBooking som skal tjekkes for om Id fra tblCompany eksisterer.
Det er lidt svært at forklare.
Avatar billede skovtrold Nybegynder
11. september 2002 - 14:15 #7
Jeg har løst det på en helt anden (og lidt kringlet) måde, men du får point alligevel som tak for indsatsen.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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