Hey, jeg er ved at lave en lille marketingsopgave til mit studie og har downloadet alle danske adresser inde fra BBR/DAWA. Når jeg sætter anvendelseskode på, så sker det, at der kommer dubletter, da en adresse sagtens kan have mere end 1 bygning på, det vil jeg gerne have lidt mere dynamisk :)
Er der en som kan hjælpe mig?
Jeg har følgende kode jeg kører: SELECT DISTINCT Anvendelseskoder.[Usage Code] AS [Byggeanvendelseskode], Anvendelseskoder.[Usage Code Value] AS [Byggeanvendelse], HeleDanmark_DAWA.KVHx FROM Anvendelseskoder RIGHT JOIN HeleDanmark_DAWA ON Anvendelseskoder.KVHx = HeleDanmark_DAWA.KVHx WHERE HeleDanmark_DAWA.postnr=6720 AND Anvendelseskoder.[Usage Code]>0
Med PIVOT vil du få Byggeanvendelseskode som kolonne-overskrift. Det er ikke helt det du vil?
En anden løsning kunne være denne:
WITH a AS ( SELECT DISTINCT Anvendelseskoder.[Usage Code] AS [Byggeanvendelseskode], Anvendelseskoder.[Usage Code Value] AS [Byggeanvendelse], HeleDanmark_DAWA.KVHx FROM Anvendelseskoder RIGHT JOIN HeleDanmark_DAWA ON Anvendelseskoder.KVHx = HeleDanmark_DAWA.KVHx WHERE HeleDanmark_DAWA.postnr=6720 AND Anvendelseskoder.[Usage Code]>0 ) ,aa AS ( SELECT a.*, row_number() over(partition by KVHx order by Byggeanvendelseskode) Nr FROM a ) SELECT KVHx, Byggeanvendelseskode Kode1, Byggeanvendelse Anvend1 ,(SELECT Byggeanvendelseskode FROM aa AS s2 WHERE s2.Nr = 2 AND s2.KVHx = aa.KVHx ) Kode2 ,(SELECT Byggeanvendelse FROM aa AS s2 WHERE s2.Nr = 2 AND s2.KVHx = aa.KVHx ) Anvend2 ,(SELECT Byggeanvendelseskode FROM aa AS s2 WHERE s2.Nr = 3 AND s2.KVHx = aa.KVHx ) Kode3 ,(SELECT Byggeanvendelse FROM aa AS s2 WHERE s2.Nr = 3 AND s2.KVHx = aa.KVHx ) Anvend3 FROM aa AS s1 WHERE Nr = 1
Jeg er kommet frem til følgende, men hvor den skriver overskrifterne og så 1 eller 0 i pivot-tabellen. Her ville jeg gerne have hvis den kunne give mig overskriften "Bygning 1", "Bygning 2" osv. og så med det der er overskriften nu som værdi
WITH Acode AS (SELECT HeleDanmark_DAWA.KVHx, Anvendelseskoder.[Usage Code], Anvendelseskoder.[Usage Code Value] FROM Anvendelseskoder RIGHT JOIN HeleDanmark_DAWA ON HeleDanmark_DAWA.KVHx = Anvendelseskoder.KVHx) SELECT * FROM Acode PIVOT( COUNT([Usage Code]) FOR [Usage Code Value] IN ( [Stuehus til landbrugsejendom], [Fritliggende enfamilieshus (parcelhus).], [Række-, kæde- eller dobbelthus (lodret adskillelse mellem enhederne).], [Etageboligbebyggelse (flerfamiliehus, herunder tofamiliehus (vandret adskillelse mellem enhederne)).], [Kollegium], [Døgninstitution (plejehjem, alderdomshjem, børne- eller ungdomshjem).], [Anden enhed til helårsbeboelse], [Erhvervsmæssig produktion vedrørende landbrug, skovbrug, gartneri, råstofudvinding og lign.], [Erhvervsmæssig produktion vedrørende industri, håndværk m.v. (fabrik, værksted o. lign.)], [El-, gas-, vand- eller varmeværk, forbrændingsanstalt o. lign.], [Anden enhed til produktion og lager i forbindelse med landbrug, industri o. lign.], [Transport- og garageanlæg (fragtmandshal, lufthavnsbygning,banegårdsbygning o. lign.)], [Engroshandel og lager.], [Detailhandel m.v.], [Pengeinstitut, forsikringsvirksomhed m.v.], [Kontor og liberale erhverv bortset fra offentlig administration], [Offentlig administration.], [Hotel, restauration, vaskeri, frisør og anden servicevirksomhed.], [Anden enhed til handel, transport etc.], [Biograf, teater, erhvervsmæssig udstilling m.v.], [Bibliotek, museum, kirke o. lign.], [Undervisning og forskning (skole, gymnasium, forskningslaboratorium).], [Hospital, fødeklinik o. lign.], [Daginstitution.], [Anden institution, herunder kaserne, fængsel m.v.], [Sommerhus.], [Enhed til ferieformål m.v. bortset fra sommerhus (feriekoloni vandrehjem o. lign.)], [Enhed i forbindelse med idrætsudøvelse (klubhus, idrætshal, svømmehal o. lign.).], [Kolonihavehus.], [Anden enhed til fritidsformål.], [Ikke tidligere vurderet erhvervsenhed i nybyggeri], [Garage], [Carport], [Udhus]) ) AS pvt
RAHP: Du har ret, det er nemlig ikke det jeg vil.. Men det er det tætteste på jeg selv kunne finde ud af at komme!
Jeg prøver koden så snart jeg kan - Min SQL Server står lige og er ved at lave mig et udtræk af ovenstående så jeg kan se hvor mange bygninger der maksimalt er på kvhx-niveau :)
Jeg har prøvet at køre SQL'en og den giver følgende fejl:
Msg 208, Level 16, State 1, Line 1 Invalid object name 'Anvendelseskoder'.
Når jeg klikker på fejlen peger den op på den øverste linje.
Jeg har derfor prøvet at køre den med fuld "sti". Databasen hedder Potentiale, så stien ville være Potentiale.dbo.tabel.kolonne, men det kan jeg heller ikke få til at virke :(
WITH a AS ( SELECT DISTINCT Potentiale.dbo.Anvendelseskoder.[Usage Code] AS [Byggeanvendelseskode], Potentiale.dbo.Anvendelseskoder.[Usage Code Value] AS [Byggeanvendelse], Potentiale.dbo.HeleDanmark_DAWA.KVHx FROM Potentiale.dbo.Anvendelseskoder RIGHT JOIN Potentiale.dbo.HeleDanmark_DAWA ON Potentiale.dbo.Anvendelseskoder.KVHx = Potentiale.dbo.HeleDanmark_DAWA.KVHx WHERE Potentiale.dbo.HeleDanmark_DAWA.postnr=6720 AND Potentiale.dbo.Anvendelseskoder.[Usage Code]>0 ) ,aa AS ( SELECT a.*, row_number() over(partition by KVHx order by Byggeanvendelseskode) Nr FROM a ) SELECT KVHx, Byggeanvendelseskode Kode1, Byggeanvendelse Anvend1 ,(SELECT Byggeanvendelseskode FROM aa AS s2 WHERE s2.Nr = 2 AND s2.KVHx = aa.KVHx ) Kode2 ,(SELECT Byggeanvendelse FROM aa AS s2 WHERE s2.Nr = 2 AND s2.KVHx = aa.KVHx ) Anvend2 ,(SELECT Byggeanvendelseskode FROM aa AS s2 WHERE s2.Nr = 3 AND s2.KVHx = aa.KVHx ) Kode3 ,(SELECT Byggeanvendelse FROM aa AS s2 WHERE s2.Nr = 3 AND s2.KVHx = aa.KVHx ) Anvend3 FROM aa AS s1 WHERE Nr = 1
Synes godt om
Ny brugerNybegynder
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.