Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Gräva i en tabell

Postades av 2005-10-03 13:49:18 - Benny Jonsson, i forum sql-server/msde, Tråden har 6 Kommentarer och lästs av 759 personer

Någon som klarar av att fixa en SQL fråga som returnerar en sträng med id på alla poster som är rekursivt refererade via idParent på nedanstående tabell.

<code>
CREATE TABLE [tblTree] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[idParent] [int] NOT NULL ,
CONSTRAINT [PK_tblTree] PRIMARY KEY (id),
CONSTRAINT [FK_tblTree] FOREIGN KEY (idParent) REFERENCES tblTree([id]))
</code>


Svara

Sv: Gräva i en tabell

Postades av 2005-10-03 13:55:05 - Daniel Åsberg

SQL är roligt. Dock så förstår jag inte frågan.
Så om du inte får nått annat svar så kan du gärna förklara för mig vad "rekursivt refererade" betyder så kanske jag kan lösa det.


Svara

Sv:Gräva i en tabell

Postades av 2005-10-03 14:07:53 - Benny Jonsson

tänk att tabellens innehåll är som nedan

id idParent
1 1
2 1
3 1
4 3
5 5
6 5

Om jag då vill hitta alla som refererar till posten med id 1 rekursivt så blir det ju så att att posten med id 2 och 3 refererar till id 1. Men sen så är det ju så att posten 4 refererar till 3 som refererar till 1 altså refererar den "rekursivt" till post 1. Hur långt nästlat ned det kan vara är okänt.

Så om jag skickar in "1" till en stored procedure vill jag ha tillbaks "1,2,3,4" och skickar jag in 5 så vill jag ha tillbaks "5,6"


Svara

Sv: Gräva i en tabell

Postades av 2005-10-03 14:56:55 - Benny Jonsson

Med lite fusk med en extra tabell så kan jag ju plocka ut alla ID jag behöver. Men det borde finnas snyggare lösning....
<code>
CREATE TABLE tmpTable ([id] int, akey int)

CREATE PROCEDURE spGetTblTreeString
@@id int,
@@key int
AS
DECLARE @@intTmpID int
DECLARE @idCursor CURSOR
SET @idCursor = CURSOR LOCAL SCROLL FOR
SELECT [id] FROM tblTree WHERE idParent = @@id and @@id <> [id]
OPEN @idCursor
FETCH NEXT FROM @idCursor INTO @@intTmpID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO tmpTable values(@@intTmpID, @@key)
EXEC ('EXEC spGetTblTreeString ' + @@intTmpID + ', ' + @@key )
FETCH NEXT FROM @idCursor INTO @@intTmpID
END
CLOSE @idCursor
DEALLOCATE @idCursor
</code>

Och sen en select från tmpTable


Svara

Sv:Gräva i en tabell

Postades av 2005-10-03 20:37:20 - Marcus Agbrant

Tänk dock på att loopar i SP inte är rekomenderat...


Svara

Sv: Gräva i en tabell

Postades av 2005-10-04 08:34:40 - Benny Jonsson

Jo jag vet att. Lite därför jag hoppas hitta en bättre lösning. Någon som har förslag?


Svara

Sv:Gräva i en tabell

Postades av 2005-10-04 15:40:07 - Per Hultqvist

Följande två artiklar beskriver hur man hanterar hierarkier i SQL. Den andra artikeln är mer komplett om jag minns rätt.

http://vyaskn.tripod.com/hierarchies_in_sql_server_databases.htm

http://www.sqlmag.com/Articles/Index.cfm?ArticleID=8826&pg=1


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 808
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies