🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #125031

Re: Poznaczenie najniższego pozimu

#125031
From: Krzysztof Naworyta
Date: Tue, 19 Aug 2008 12:45
62 lines
2050 bytes
Użytkownik wrote:

| mam problem z odznaczeniem poziomu szczegółowości rekordu.
|
| mamy rekordy:
| ID  wartość
| 1        9
| 1-1     2
| 1-2     3
| 1-3     4
| 2        6
| 2-1     6
| 2-1-1  4
| 2-1-2  2
| 3        7
|
|
|
| Chodzi o to, że chcę wyselekcjonować tylko te rekordy o nie ma nić
| podżednego Czyli 1-1, 1-2, 1-3, 2-1-1, 2-1-2, 3
|
| Czy ktoś ma może pomysł jak to zrobić?

np:

SELECT
   t1.*
FROM
   Tabela1 t1
LEFT JOIN
   Tabela1 t2
ON
   t2.id like t1.id & "-*"
WHERE
   t2.id Is Null

ale IMHO dużo lepiej będzie, jeśli wprowadzisz pole klucza nadrzędnego:

ID, ParentID, wartość
1        NULL     ...
1-1        1
1-2        1
1-3        1
2        NULL
2-1        2
2-1-1    2-1
2-1-2    2-1
3        NULL

wtedy zapytanie o "liście":

select * from tabela1 t1
where
not exists
(select * from tabela1 t2 where t1.id = t2.ParentId)

oczywiście nie załatwia to wszelkich zapytań drzewkowych, albo wymaga 
podejścia rekurencyjnego.
Albo jeszcze inne podejście drzewkowe by Joe Celko.

--
KN
Technical Details
Message-ID: <g8ef91$sft$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
References: <bf81ef25-de09-40f3-a09f-8439041d4bc7@56g2000hsm.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: "Krzysztof Naworyta" <k.naworyta@datacomp.com.pl>
Newsgroups: pl.comp.bazy-danych.msaccess
Subject: Re: Poznaczenie najniższego pozimu
Date: Tue, 19 Aug 2008 14:45:20 +0200
Organization: Onet.pl
Lines: 63
Message-ID: <g8ef91$sft$1@news.onet.pl>
References: <bf81ef25-de09-40f3-a09f-8439041d4bc7@56g2000hsm.googlegroups.com>
NNTP-Posting-Host: azc98.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1219149921 29181 83.18.132.98 (19 Aug 2008 12:45:21 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Tue, 19 Aug 2008 12:45:21 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
X-Sender: isNb2RK0ghBqVJPEt5vfjsjJSvxj2GTy
X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
X-Priority: 3
X-MSMail-Priority: Normal
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit