Mam takiego XML
<?xml version="1.0"?> <osoba> <imie>Stanislaw</imie> <nazwisko>Kowalski</nazwisko> <pokolenie>1</pokolenie> <wspolmal> <imie>Barbara</imie> <nazwisko>Babacka</nazwisko> <pokolenie>1</pokolenie> <osoba> <imie>Krzysztof</imie> <nazwisko>Kowalski</nazwisko> <pokolenie>2</pokolenie> <wspolmal> <imie>Martyna</imie> <nazwisko>Abacka</nazwisko> <pokolenie>2</pokolenie> <osoba> <imie>Zbigniew</imie> <nazwisko>Kowalski</nazwisko> <pokolenie>3</pokolenie> <wspolmal> <imie>Izabela</imie> <nazwisko>Peszko</nazwisko> <pokolenie>3</pokolenie> </wspolmal> </osoba> <osoba> <imie>Kamil</imie> <nazwisko>Kowalski</nazwisko> <pokolenie>3</pokolenie> </osoba> <osoba> <imie>Maria</imie> <nazwisko>Kowalski</nazwisko> <pokolenie>3</pokolenie> </osoba> </wspolmal> </osoba> <osoba> <imie>Katarzyna</imie> <nazwisko>Kowalski</nazwisko> <pokolenie>2</pokolenie> <wspolmal> <imie>Mariusz</imie> <nazwisko>Nowak</nazwisko> <pokolenie>2</pokolenie> <osoba> <imie>Michal</imie> <nazwisko>Nowak</nazwisko> <pokolenie>3</pokolenie> <wspolmal> <imie>Krystyna</imie> <nazwisko>Lis</nazwisko> <pokolenie>3</pokolenie> </wspolmal> </osoba> <osoba> <imie>Daniel</imie> <nazwisko>Nowak</nazwisko> <pokolenie>3</pokolenie> </osoba> </wspolmal> </osoba> </wspolmal> </osoba>
Jest to jakieś drzewo genealogiczne wymyślone przeze mnie. No i wprowadziłem sobie tego xmla do bazy MS SQL. Wszystko jest w jednej kolumnie.
No i chce napisać komende sqlową która pozwoli znalść kogoś bez wspolmalzonka badz pare bez dziecka i mu go dodać. Narazie mam takie coś
, to pozwala znaleść kogoś i wypisać jego wspolmaloznka(choć tak to miało wyglądać, rzeczywiscie pokazuje cały węzeł ).Tez nie bardzo mam pomysł jak by napisać by nie wypisywane były pod wezły we <wspolmal></wspolmal>.
SELECT opis.query('//osoba[imie="Krzysztof" and nazwisko="Kowalski" and pokolenie= "2"]/wspolmal') FROM dzewo;
Jak ktoś ma pomysł, prosił bym o sugestie.