Avatar billede regihr_slein Nybegynder
19. april 2010 - 12:46 Der er 5 kommentarer og
1 løsning

Underforspørgsel - sammensætning af to SQL-koder

Hej

Jeg har tre tabeller: MicroLeverandørData, BOM-styringer, BOM

Ud fra MicroLeverandørData, BOM-styringer har jeg lavet en forespørgsel, med følgende SQL-kode.

SELECT MicroLeverandørData.Komponentnr, MicroLeverandørData.Beskrivelse, Count([BOM-styringer].Komponentnr) AS [# styringer]

FROM MicroLeverandørData INNER JOIN [BOM-styringer] ON MicroLeverandørData.Komponentnr=[BOM-styringer].Komponentnr

GROUP BY MicroLeverandørData.Komponentnr, MicroLeverandørData.Beskrivelse;
micro#Styringer

Her relaterer jeg komponentnr. fra de to tabeller og tæller hvor mange mange komponentnr. joines og vist for de enkelte komponentnr fra MicroLeverandørData

Det giver følgende

Komponentnr    Beskrivelse        # styringer
601541            SMD Micro Masket    1
96485714    SMD MICRO Mask        12
96549671    SMD MICRO Mask             3
96558760    Micro programmed    3
96612309    Micro programmed     1
96626232    Micro prog.            1
96637738    Micro programmed    2
96797081    SMD Micro Masked    7

Derudover har jeg lavet forespørgselen; Micro#Pumper, der også anvender forespørgslen BOM.

SELECT MicroLeverandørData.Komponentnr, MicroLeverandørData.Beskrivelse, Count(BOM.Komponentnr) AS [# Pumper]

FROM BOM INNER JOIN (MicroLeverandørData INNER JOIN [BOM-styringer] ON MicroLeverandørData.Komponentnr = [BOM-styringer].Komponentnr) ON BOM.Komponentnr = [BOM-styringer].Styring

GROUP BY MicroLeverandørData.Komponentnr, MicroLeverandørData.Beskrivelse;
Micro#Pumper

Her tælles hvor mange gange komponentnr fra BOM joines og igen opstillet pr. komponentnr fra tabellen MicroLeverandørData - det giver følgende:

Komponentnr      Beskrivelse        # Pumper
601541            SMD Micro Masket    1
96485714    SMD MICRO Mask        39
96549671    SMD MICRO Mask            4
96558760    Micro programmed)    5
96612309    Micro programmed    5
96626232    Micro prog.            1
96637738    Micro programmed    2
96797081    SMD Micro Masked      34


Jeg vil gerne have et view der viser Komponentnr, Beskrivelse, #Styring, #Pumper, således de ovenstående views vises sammen. Det er ikke umiddelbart muligt bare at vise #pumper i den første forespørgsel eller omvendt - de skal derfor kombineres.

Jeg har sammensat de to forespørgsler i en ny med følgende SQL-kode:

SELECT [Micro#Pumper].Komponentnr, [Micro#Pumper].Beskrivelse, [Micro#Pumper].[# Pumper], [micro#Styringer].[# styringer]

FROM [micro#Styringer] INNER JOIN [Micro#Pumper] ON [micro#Styringer].Komponentnr = [Micro#Pumper].Komponentnr

GROUP BY [Micro#Pumper].Komponentnr, [Micro#Pumper].Beskrivelse, [Micro#Pumper].[# Pumper], [micro#Styringer].[# styringer];

men vil gerne væk fra at sætte to forespørgsler sammen og i stedet danne en SQL-kode. Jeg har forsøgt mig med følgende SQL-kode:

SELECT MicroLeverandørData.Komponentnr, MicroLeverandørData.Beskrivelse, Count(BOM.Komponentnr) AS [# Pumper],

(SELECT Count([BOM-styringer].Komponentnr)

FROM MicroLeverandørData INNER JOIN [BOM-styringer] ON MicroLeverandørData.Komponentnr = [BOM-styringer].Komponentnr;) AS [# styringer]

FROM BOM INNER JOIN (MicroLeverandørData INNER JOIN [BOM-styringer] ON MicroLeverandørData.Komponentnr = [BOM-styringer].Komponentnr) ON BOM.Komponentnr = [BOM-styringer].Styring

GROUP BY MicroLeverandørData.Komponentnr, MicroLeverandørData.Beskrivelse;

Hvilket giver følgende view, hvor antal styringer desværre er givet ved det samlede antal og ikke pr. komponentnr.

Komponentnr    Beskrivelse      # Pumper    # styringer
601541    SMD Micro Masket            1    30
96485714    SMD MICRO Mask             39    30
96549671    SMD MICRO Mask        4    30
96558760    Micro programmed     5    30
96612309    Micro programmed    5    30
96626232    Micro prog.             1    30
96637738    Micro programmed     2    30
96797081    SMD Micro Masked     34    30


Er der en lille ting jeg gør forkert? Eller kan det ikke løses?

Håber nogen kan hjælpe
Avatar billede terry Ekspert
19. april 2010 - 13:46 #1
It might be an idea to go through your opened questions to see if some of them should be closed. Better chance of getting help here if youdo :o)
Avatar billede terry Ekspert
19. april 2010 - 13:47 #2
with questions such as this one http://www.eksperten.dk/spm/894540
you can just palce an answer yourself and get your pinbts back too
Avatar billede terry Ekspert
26. april 2010 - 08:38 #3
status please?
Avatar billede terry Ekspert
28. april 2010 - 09:01 #4
status?
Avatar billede regihr_slein Nybegynder
17. september 2010 - 12:08 #5
Lukket
Avatar billede terry Ekspert
17. september 2010 - 16:39 #6
and you also need to accept your answer :o)
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