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


sp som plockar ut childs och parents...

Postades av 2002-10-21 09:12:05 - Andreas Högström, i forum sql-server/msde, Tråden har 3 Kommentarer och lästs av 752 personer

denna sp plockar ut parent och childs och listar dem, förutom när två parents(null) ligger efter varann i tabellen, nån som fattar varför??

ID PARENT NAME
1 null parent1
2 null parent2
3 2 child1
osv

CREATE PROCEDURE getChild AS
SET NOCOUNT ON
DECLARE @level int, @line char(20), @name char(100), @PGID int

CREATE TABLE #temp (item char(20), name char(100), level int)

SET @PGID= (SELECT Min(PGID) FROM tblProductGroups WHERE Parent = NULL)
WHILE @PGID Is Not Null
BEGIN
PRINT @PGID
CREATE TABLE #stack (item char(20), level int)
INSERT INTO #stack VALUES (@PGID, 1)
SELECT @level = 1

WHILE @level > 0
BEGIN
IF EXISTS (SELECT * FROM #stack WHERE level = @level)
BEGIN
SELECT @PGID = item
FROM #stack
WHERE level = @level
SELECT @name = Name FROM tblProductGroups WHERE PGID = @PGID
INSERT INTO #temp VALUES (@PGID, @name, @level)
DELETE FROM #stack
WHERE level = @level
AND item = @PGID
INSERT #stack
SELECT PGID, @level + 1
FROM tblProductGroups
WHERE Parent = @PGID
IF @@ROWCOUNT > 0
SELECT @level = @level + 1
END
ELSE
SELECT @level = @level - 1
END -- WHILE

DROP TABLE #stack
SET @PGID= (SELECT Min(PGID) FROM tblProductGroups WHERE PGID >@PGID AND Parent = NULL)
END
SELECT * FROM #temp
GO


Svara

Sv: sp som plockar ut childs och parents...

Postades av 2002-10-21 19:05:27 - Andreas Hillqvist

Du kan ju testa med:

ALTER PROCEDURE getChild AS

SET NOCOUNT ON

DECLARE @level int
DECLARE @line char(20)
DECLARE @PGID int

CREATE TABLE #temp
(
item char(20),
name char(100),
level int
)

CREATE TABLE #stack
(
item char(20),
level int
)

SET @level = 1

INSERT #stack
SELECT PGID, @level
FROM tblProductGroups
WHERE Parent Is Null

WHILE @level > 0
BEGIN
SET @PGID = Null

SELECT TOP 1 @PGID = item
FROM #stack
WHERE level = @level

IF @PGID Is Null
SELECT @level = @level - 1
ELSE BEGIN
INSERT INTO #temp
SELECT @PGID, Name, @level
FROM tblProductGroups
WHERE PGID = @PGID

DELETE FROM #stack
WHERE item = @PGID

INSERT #stack
SELECT PGID, @level + 1
FROM tblProductGroups
WHERE Parent = @PGID
IF @@ROWCOUNT > 0 SET @level = @level + 1
END
END

DROP TABLE #stack

SELECT * FROM #temp

DROP TABLE #temp
GO



Svara

Sv: sp som plockar ut childs och parents...

Postades av 2002-10-22 10:48:23 - Andreas Högström

du är ju grym på sp :-)


Svara

Sv: sp som plockar ut childs och parents...

Postades av 2002-10-22 12:51:51 - Andreas Hillqvist

Jag är grym på det mesta. ;-)


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 617
27 953
271 709
5 725
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