m09036
2017-05-19, 22:15
Jag har diverse behov av att exportera data med full kontroll över layouten ner till enskilda tecken för import i andra program så jag jobbar med databasen direkt via SQL. Just nu försöker jag extrahera data med uppgifter för att bygga en stamtavla men eftersom jag inte hittar dokumentation över databaslayouten så har jag fått pröva mig fram och nu kört fast. Kortfattat behöver jag en metod att hitta alla barn till en specifik individ och sortera barnen i kronologisk ordning.
Som exempel väljer jag en person i min egen databas som har tre olika relationer med barn i varje. Först tar jag reda på vilka familjer individen ingår i:
SELECT DISTINCT FamilyId FROM ParentRelations WHERE PersonId=5003718;
FamilyId
5003716
5004100
5004141
Med familjeidentiteterna som grund kan jag nu ta fram alla barn som ingår i någon av dem:
SELECT * FROM Children WHERE FamilyId IN (5003716, 5004100, 5004141);
PersonId|FamilyId|ChildOrder|FamilyOrder|Relevance |Security|ChangeTime
5004081|5003716|0|0||0|42824.8541712384
5003400|5003716|1|0||0|42824.8541712384
5004087|5003716|2|0||0|42824.8541712384
5004093|5003716|3|0||0|42824.8541712384
5004111|5003716|4|0||0|42824.8541712384
5004076|5004100|0|0||0|42824.8541717824
5004071|5004141|0|0||0|42824.8541717824
Jag inser att det finns en kolumn ChildOrder som låter mig sortera barnen i kronologisk ordning per familj men var i databasens tabeller finns information om den kronologiska ordningen på själva familjerna? Jag måste först sortera dessa och kolumnen FamilyOrder är 0 rakt igenom så den kan jag inte använda mig av. Jag har letat och letat bland tabellerna men inte hittat hur och var denna information kodas.
Eller missar jag något uppenbart här? Finns det något sätt att direkt ta fram alla barn till en individ, i kronologisk ordning, utan att behöva gå omvägen via FamilyId?
Mvh
Morgan Wesström
Som exempel väljer jag en person i min egen databas som har tre olika relationer med barn i varje. Först tar jag reda på vilka familjer individen ingår i:
SELECT DISTINCT FamilyId FROM ParentRelations WHERE PersonId=5003718;
FamilyId
5003716
5004100
5004141
Med familjeidentiteterna som grund kan jag nu ta fram alla barn som ingår i någon av dem:
SELECT * FROM Children WHERE FamilyId IN (5003716, 5004100, 5004141);
PersonId|FamilyId|ChildOrder|FamilyOrder|Relevance |Security|ChangeTime
5004081|5003716|0|0||0|42824.8541712384
5003400|5003716|1|0||0|42824.8541712384
5004087|5003716|2|0||0|42824.8541712384
5004093|5003716|3|0||0|42824.8541712384
5004111|5003716|4|0||0|42824.8541712384
5004076|5004100|0|0||0|42824.8541717824
5004071|5004141|0|0||0|42824.8541717824
Jag inser att det finns en kolumn ChildOrder som låter mig sortera barnen i kronologisk ordning per familj men var i databasens tabeller finns information om den kronologiska ordningen på själva familjerna? Jag måste först sortera dessa och kolumnen FamilyOrder är 0 rakt igenom så den kan jag inte använda mig av. Jag har letat och letat bland tabellerna men inte hittat hur och var denna information kodas.
Eller missar jag något uppenbart här? Finns det något sätt att direkt ta fram alla barn till en individ, i kronologisk ordning, utan att behöva gå omvägen via FamilyId?
Mvh
Morgan Wesström