Avatar billede mccannon Nybegynder
29. august 2008 - 14:24 Der er 9 kommentarer

Udtræk og group by eller hvad ?

Hej

Jeg har et view som ser sådan her ud

Itemid, optionid, optiontext, optionlevel

Hver itemid har 3 eller 4 options koblet på.

Det kunne feks se sådan ud

1, 100, 'Firma', 0
1, 101, 'Privat', 1
1, 102, 'Serverrettigheder', 2
1, 103, 'linux', 3

eller

2, 200, 'Firma', 0
2, 201, 'Privat', 1
2, 202, 'FTP', 2
--------------------

Det jeg så skal have lavet er et udtræk som gruppere dem  og tæller dem sammen så man kan lave noget statestik på det.

jeg må indrømme jeg er ikke ret god til sql udtræk når det går ud over det mest alm.

Håber der er nogen som kan hjælpe.
Avatar billede aaberg Nybegynder
29. august 2008 - 14:28 #1
Prøv at specificere lidt mere præcist hvad du gerne vil have at sql-queryen skal hente.

Hvis du f.eks. vil se hvor mange poster der er for hver ItemID, kan sql sætningen se sådan ud.

select itemid, count(itemid) as "antal_poster"
from myView
group by itemid
Avatar billede mccannon Nybegynder
29. august 2008 - 14:34 #2
jeg skal have følgene feks

OptionText            Antal
'Privat'              129
'Serverrettigheder'    23
'Linux'                  5

Problemet tror jeg er at feks serverrettigheder har childs (Windows/linux) hvor feks FTP ikke har childs

Gave det mere mening ?
Avatar billede aaberg Nybegynder
29. august 2008 - 14:38 #3
prøv:

select OptionText, COUNT(OptionText) Antal
from myView
group by OptionText
Avatar billede mccannon Nybegynder
29. august 2008 - 14:46 #4
hmm jeg tror ikke jeg forklare det godt nok :-/

Uhm, det skal gerne laves sådan feks at det hænger sammen. På den ovennævnte måde vil man jo ikke kunne se at  feks 'linux' er child af 'serverrettigheder'
Avatar billede aaberg Nybegynder
29. august 2008 - 14:51 #5
Er der noget i dine data som angiver at 'linux' er child af 'serverrettigheder', eller er det bare noget du ved?
Avatar billede aaberg Nybegynder
29. august 2008 - 14:54 #6
Og, hvordan vil du helt præcist have at resultatet ser ud? Det du angiver i din post fra kl: 14:34:18, kan du jo opnå med den sql query jeg foreslog.
Avatar billede mccannon Nybegynder
29. august 2008 - 15:14 #7
mand! hvor jeg skod til at forklare.

uhm

Det er en mangel, jeg vender tilbage når jeg for det fixet i viewet....sorry:(
Avatar billede mccannon Nybegynder
29. august 2008 - 17:02 #8
Hej igen

Oki nu har jeg fået tilføjet så man kan se om 3 level options har en parent i viewet.

view ser således  ud nu:
Itemid, OptionId, OptionText, OptionLevel,Parentoption

Hvis en 3 level option har en parent, vil der stå et id, ellers null.

Så hvis man kunne lave det sådan her:
"OptionText, antal"  er normal
Hvis der så er childoptions
OptionText, antal
  childoptiontext, childtoption

jeg ved ikke hvordan jeg skal forklare det bedre ?
Avatar billede aaberg Nybegynder
01. september 2008 - 08:05 #9
Se om det ikke er noget lignende dette du skal bruge:

select v.OptionText, count(v.OptionText) Antall, c.OptionText ChildOptionText, c.OptionId ChildOptionId
from myView v
left outer join myView c on v.OptionId = c.ParentOption
group by v.OptionText, c.OptionText, c.OptionId
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
Computerworld tilbyder specialiserede kurser i database-management

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