Avatar billede jensen363 Forsker
25. januar 2006 - 09:04 Der er 15 kommentarer og
1 løsning

Intervalgruppering af husnumre

Hej venner ....

En tabel indeholder følgende informationer :

Postnr  nummerisk
Rutenr  nummerisk
Gade    alfanummerisk
Husnr    nummerisk

Jeg skal have lavet et udtræk som i intervaller viser hvilke Husnr som hører til hvilke Rutenr ...

Eksempel :

Flere Rutenr deler en Gade, f.eks. nr. 1-7 + 17-21 + 31-33 hører til Rutenr 100 og nr. 9-15 + 23-29 hører til Rutenr 110

Tabelmæssigt ser oplysningerne således ud :

Postnr  Rutenr  Gade          Husnr
1000    100      Roskildevej    1
1000    100      Roskildevej    3
1000    100      Roskildevej    5
1000    100      Roskildevej    7
1000    110      Roskildevej    9
1000    110      Roskildevej    11
1000    110      Roskildevej    13
1000    110      Roskildevej    15
1000    100      Roskildevej    17
1000    100      Roskildevej    19
1000    100      Roskildevej    21
1000    110      Roskildevej    23
1000    110      Roskildevej    25

osv ....

Nogle gode ideer til hvordan SQL skal strikkes sammen ?
Avatar billede terry Ekspert
25. januar 2006 - 12:13 #1
If you want a result something like this

1000, 100, Roskilevej, "1-7 + 17-21 + 31-33"


then I very much dout that you can do it directly in SQL
Avatar billede tjp Mester
25. januar 2006 - 13:35 #2
Hvad med en ORDER BY?

SELECT * FROM tabel ORDER BY Postnr, Rutenr, Husnr
Avatar billede jensen363 Forsker
25. januar 2006 - 13:36 #3
Yes, something like that ... or better ...

1000,100, Roskildevej,1-7
1000,110, Roskildevej,9-15
1000,100, Roskildevej,17-21
1000,110, Roskildevej,13-29
1000,100, Roskildevej,31-33
Avatar billede tjp Mester
25. januar 2006 - 13:52 #4
Hvad siger du "yes" til? ;-)
Avatar billede jensen363 Forsker
25. januar 2006 - 13:55 #5
tjp > din løsning giver ikke en Husnr-intervalindeling i forhold til gade, postnr og rutenr
Avatar billede tjp Mester
25. januar 2006 - 14:23 #6
Et skud fra hoften uden test eller noget:
SELECT Postnr, Rutenr, Gade,  min(Husnr) AS Fra, max(Husnr) AS Til FROM tabel GROUP BY Rutenr ORDER BY Postnr, Rutenr
Avatar billede tjp Mester
25. januar 2006 - 14:25 #7
Måske nærmere:
SELECT Postnr, Rutenr, Gade,  min(Husnr) AS Fra, max(Husnr) AS Til FROM tabel GROUP BY Rutenr ORDER BY Postnr, Fra
Avatar billede jensen363 Forsker
25. januar 2006 - 14:32 #8
tjp > min / max vil give dette output

1000,100, Roskildevej, 1-33
1000,120, Roskildevej, 9-29

Og der er overlab kan du se ;o)
Avatar billede tjp Mester
25. januar 2006 - 15:54 #9
Tja, så er og bliver mit bedste bud stadig:
SELECT Postnr, Rutenr, Gade, Husnr
FROM Tabel
ORDER BY Postnr, Husnr;
Avatar billede jensen363 Forsker
25. januar 2006 - 16:04 #10
tjp> det kan godt være at det er dit bedste bud :o) ... men en gruppering på husnummer viser altså ikke intervallet af husnumre som der er på gaden, men returnere nøjagtigt det samme som tabelindholdet ;o)

Opgaven er ikke sådan ligetil ...
Avatar billede jensen363 Forsker
25. januar 2006 - 16:56 #11
Idé kan man leve en krydstabulering på husnummer, og så afkode/læse intervallet fra venstre mød højre ... ?

Altså :
                        1  3  5  7  9  11  13  15  17  19
1000,100, Roskildevej    x  x  x  x                  x  x
1000,110, Roskildevej                x  x  x  x 

Nogen forslag ?
Avatar billede jensen363 Forsker
29. januar 2006 - 17:24 #12
Lukker : Løsning fundet
Avatar billede tjp Mester
30. januar 2006 - 00:24 #13
Hvilken? ;-)
Avatar billede jensen363 Forsker
30. januar 2006 - 08:37 #14
Avatar billede tjp Mester
30. januar 2006 - 14:53 #15
Tjek. Ah, jeg troede at det skulle være i SQL. Med et script er det jo ikke så langhåret endda. ;-)
Avatar billede jensen363 Forsker
30. januar 2006 - 15:12 #16
Jeg konkluderede hurtigt, at data ikke kunne afkodes vertikalt, men kun horisontalt, og derfor kunne det ikke gøres i SQL alene
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