Avatar billede joggeren Nybegynder
09. december 2003 - 10:22 Der er 12 kommentarer og
1 løsning

Hjælp til forespørgsel

Jeg har en forespørgsel med følgende output:

Ordrenummer, X1 betegnelse, X1 tykkelse, X1 Fila, X1 behov
1              Pe            5            over    17

Forespørgslen fortsætter med X2 betegnelse osv op til X4.

Jeg vil gerne have en forespørgsel, som:

Omformer alle X1 betegnelse, X2 betegnelse osv, til en kolonne der hedder "betegnelse"... det samme med tykkelse og filament... desuden skal behovet med.

Efterfølgende skal jeg kunne summere på behov, for de poster der har samme betegnelse, tykkelse og fila..

Kan det lade sig gøre?

Beklager den rodede forklaring.
Avatar billede trer Nybegynder
09. december 2003 - 10:40 #1
lav en query med en sql som følger:

select [x1 betegnelse]+[x2 betegnelse]+[x3 betegnelse]+[x4 betegnelse] as betegnelse, [x1 behov]+[......]+[x4 behov] as behov, ....
from mytable

Summeringen sker så i en anden query:bb

select count(*), betegnelse
from [ovenstående query]
group by betegnelse
Avatar billede joggeren Nybegynder
09. december 2003 - 10:44 #2
Den skal ikke ligge dem sammen... det er tekstværdier... den skal bare lave en kolonne med betegnelse.. osv...
Avatar billede trer Nybegynder
09. december 2003 - 10:49 #3
Du samler tekststrenge til en tekststreng med et +
Avatar billede joggeren Nybegynder
09. december 2003 - 10:56 #4
Melder fejl på denne linie:

select [x1 Betegnelse]+[x2 Betegnelse]+[x3 Betegnelse]+[x4 betegnelse] as betegnelse, from behovordre1

Den skal iøvrig holder alt med 1 sammen... dvs en line med

Eksempel:

Post 1: x1 betegnlse x1tykkelse x1 fila x1 behov
Post 2: x1 betegnlse x1tykkelse x1 fila x1 behov
Post 3: x2 betegnlse x2tykkelse x2 fila x2 behov
Avatar billede joggeren Nybegynder
09. december 2003 - 10:58 #5
Ordrenummer skal også med...
Avatar billede trer Nybegynder
09. december 2003 - 11:07 #6
Du har et komma efter [betegnelse] - det er årsagen til fejlen.

Ok, så retter du querien til dette

select [x1 betegnelse]+[x1tykkelse]+[x1 fila]+[x1 behov] betegnelse
from behovordre1
Avatar billede joggeren Nybegynder
09. december 2003 - 11:12 #7
øøhhh... ja... men mener du ikke:

SELECT [x1 betegnelse]+[x2 betegnelse]+[x3 betegnelse]+[x4 betegnelse] AS betegnelse
FROM behovordre1;

mene... det ender med et tomt felt
Avatar billede trer Nybegynder
09. december 2003 - 11:26 #8
Så er jeg ikke sikker på jeg forstår dit eksempel.

Vil du have lagt alle x1 betegnelse lagt sammen, eller vil du blot have samlet alle x# betegnelserne så de kommer i samme kolonne?

Hvis det er det første, så er det ovenstående select (udbygget så samtlige felter er med) - I øvrigt; vedr det tomme felt - det skyldes sikkert at en eller flere af felterne er NULL - og så bliver hele strengen NULL.

Hvis det er det andet, så skal din query se således ud

select [x1 betegnelse] as betegnelse, [x1tykkelse] as tykkelse, [x1 fila] as fila, [x1 behov] as behov
from behovordre1
union all
select [x2 betegnelse], x2tykkelse, [x2 fila], [x2 behov]
from behovordre1
union all
select [x3 betegnelse], [x3tykkelse], [x3 fila], [x3 behov]
from behovordre1
union all
select [x4 betegnelse], [x4tykkelse], [x4 fila], [x4 behov]
from behovordre1

Muligvis skal du have en where betingelse på hver subquery - det kan jeg ikke overskue når jeg ikke kender dit system.
Avatar billede joggeren Nybegynder
09. december 2003 - 11:31 #9
Det virker som det skal! ;-)

Mangler bare lige at have ordrenummeret med, så jeg kan gruppere på den.
Avatar billede trer Nybegynder
09. december 2003 - 11:39 #10
Fint- det indsætter du blot i ovenstående. Din grupperings-query hedder så

select count(*), behov, betegnelse, tykkelse, fila
from [ovenstående querys navn]
group by behov, betegnelse, tykkelse, fila

Count giver antal rækker med en given betegnelse
Du kan også benytte SUM(), MAX(), MIN() og AVG() i en GROUP BY

I en group by kan du kun benytte opsummeringsfunktioner og de felter der indgår i GROUP BY udtrykket.
Avatar billede joggeren Nybegynder
09. december 2003 - 11:42 #11
Hmmm.... hvordan indsætter jeg det (ordrenummer)?
Avatar billede trer Nybegynder
09. december 2003 - 11:48 #12
Du indsætter det i hver subquery:

select [ordrenummer], [x1 betegnelse] as betegnelse, [x1tykkelse] as tykkelse, [x1 fila] as fila, [x1 behov] as behov
from behovordre1
union all
select [ordrenummer], ....
Avatar billede joggeren Nybegynder
09. december 2003 - 12:38 #13
Perfekt
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