Avatar billede heyn Nybegynder
10. oktober 2005 - 16:24 Der er 16 kommentarer og
1 løsning

Søgning baglæns

Er det muligt, ved et statement, at søge en post i en tabel, og anvende en værdi i denne post som søgekriterie på en anden post placeret tidligere i samme tabel.
Jeg lader mig fortælle at det ikke er muligt i Access, men er muligt i MSSQL.

Mvh Christian
Avatar billede arne_v Ekspert
10. oktober 2005 - 16:30 #1
SELECT * FROM tabel WHERE felt IN (SELECT andetfelt FROM andentabel WHERE trediefelt = X)

måske
Avatar billede arne_v Ekspert
10. oktober 2005 - 16:30 #2
ellers kan du lave en JOIN på de 2 tabeller
Avatar billede heyn Nybegynder
10. oktober 2005 - 16:41 #3
Der er ikke tale om 2 tabeller.
Den post der søges ligger tidligere, ikke længere fremme, i samme tabel. Lad mig prøve at omformulere mig.
Jeg søger gennem tabbelen, og pointeren når til den post jeg skal bruge som referance. Nu skal pointeren bevæge sig baglæns for at gennemsøge den del af tabbellen der allerede er søgt på.
Avatar billede arne_v Ekspert
10. oktober 2005 - 17:02 #4
tabel og andentabel kan godt være samme tabel

du kan også joine en tabel med sig selv
Avatar billede heyn Nybegynder
11. oktober 2005 - 12:19 #5
Jeg har nok udtrykt mig dårligt. Det drejer sig om formatet af de data jeg modtager. F.eks. et stamtræ
1) Jeg henter data til og med et vist krav er opfyldt i form af en datapakke.
2) Jeg evaluerer datapakken og finder den rette post.
3) Denne post indeholder data som relaterer sig til far og mor der ligger tidligere i tabellen, som igen relaterer sig til bedsteforældre endnu tidligere i tabellen som relaterer sig til onkler og tanter der ligger længere fremme osv ...
4) Formatet af den datapakke som man modtager fra Access er af en sådan karakter at man må søge 2*forfra i datapakken for at finde far og mor. Atter søge 4*forfra for at finde bedsteforældre.  Formatet af datapakken man modtager fra MSSQL gør det muligt at søge bagud i pakken når man finder sin post. Hvordan med MySQL?

Mvh Christian
Avatar billede arne_v Ekspert
11. oktober 2005 - 12:23 #6
snakker vi noget ADO - hvor du vil vide om du kan scrolle baglæns
i et record set med MySQL ?
Avatar billede heyn Nybegynder
11. oktober 2005 - 12:55 #7
Jeg ved ikke hvad ADO er. Jeg tænker på de data som ASP og PHP modtager når man, i PHP, skriver mysql_query(), men før man kører en serie af mysql_fetch_array().
Avatar billede arne_v Ekspert
11. oktober 2005 - 15:37 #8
Hvordan ser den MS SQLServer kode ud som du gerne vil lave i MySQL ?
Avatar billede heyn Nybegynder
12. oktober 2005 - 14:30 #9
Det er ikke en jeg har, det er noget jeg har fået fortalt i sammenhæng med en diskution om hvilken DB jeg skal anvende.
Jeg har tænkt over det - MÅSKE er problemet for Access at posterne i den tabel man modtager har variabel længde alt efter indholdet i den enkelte post, så man ikke er sikker på længden af forrige post. Det KUNNE også være at alle poster både startes og afsluttes med en længdeangivelse når man man modtager data fra MSSQL. Hvad ved jeg.
Avatar billede fn1977 Nybegynder
12. oktober 2005 - 17:18 #10
Jeg bliver lige lidt nys. som jeg ser det her er dette en tabel der vil se nogenlunde sådan her ud

id | navn  | mor | far
1  | mor    |  5  | 6
2  | far    |  3  | 4
3  | farmor |
4  | farfar |
5  | mormor |
6  | morfar |
7  | mig    |  1  | 2
8  | min broe| 1  | 2

hvor tallet i første række er hver persons id i tabellen. rækken méd navn er navnet på personen
rækken på mor er moren til personen og den med far er faren til personen.

Det du så vil er at f.eks tage 8 og så få vist 8 stamtræ er det korekt
Avatar billede heyn Nybegynder
13. oktober 2005 - 16:30 #11
Netop!
Jeg vil avle på 2 hunde. Hvem er deres forfædre? Har de fælles gener for 'tæt' på er det et problem. Dårlig avl. Hvis 8 er 'min kæreste' istedet for min bror er der et problem da en baglæns søgning vil give sammenfald på mor og far. Men også hvis kun én bedsteforældre er ens kan det være et problem. Bedsteforældre kræver at man søger yderligere tilbage i tabellen ud fra 'far' og 'mor's referenceværdier da forældre altid er før børn. Hvis jeg kun kan søge fra starten af tabellen er jeg oppe på 12 søgninger i datapakken. Kan jeg søge baglæns i pakken har jeg begrænset antallet kraftigt.
Mvh Christian
Avatar billede heyn Nybegynder
14. oktober 2005 - 09:37 #12
Arne! - under alle omstændigheder syntes jeg du skal sende mig et 'svar'.
Christian
Avatar billede heyn Nybegynder
14. oktober 2005 - 09:40 #13
Nåe ja - Også fn1977
Avatar billede arne_v Ekspert
14. oktober 2005 - 10:09 #14
det du søger er vist kun muligt i Oracle !

og svar
Avatar billede thomas_p Nybegynder
01. juni 2007 - 16:49 #15
Jeg ved det er en gammel debat, men jeg prøver alligevel. Jeg er totalt nybegynder inden for programmering, men jeg ønsker at lave et program der kan udføre nøjagtig de udregninger der bliver debatteret her. Jeg arbejder i visual basic. Fik du løst dit problem, og er det evt. muligt at overføre de grundlæggende principper til visual basic? Jeg har en grad i biologi og ønsker at bruge udregningerne til at finde den effektive populationsstørrelse og populationsstrukturen hvis det siger nogen noget.

Mvh Thomas
Avatar billede heyn Nybegynder
04. juni 2007 - 03:45 #16
Hej Thomas

Nej - Jeg fik ikke løst mit problem. Alternativet - At foretage mange kald til DB viste sig dog ikke at være noget problem da MySQL DB kører som localhost på http-serveren. Serveren blev ikke overbelastet da der ikke var MANGE brugere af min side.

Jeg kender ikke Visual Basic, men hvis du kan fyre et statement af til MySQL (uanset hvilket) og behandle  retursvaret i VB skulle det ikke være noget problem at anvende den løsning jeg faldt til rette med.

Populationsstørrelse: Er det ikke f.eks. antallet af individer i en given udvalgt avlgren af køer?
Populationstruktur: Er det ikke køernes indbyrdes genetiske sammenhæng?
Altså alt det man anvender mærket i koens øre til.

Hvorfor anvender du VB? Er det i forbindelse med programmering af websider i .NET?
Har tænkt på om skulle udvikle dit program som et website med tilhørende DB? Du kan da tilgå dit program fra alle computere.

Mvh Christian
Avatar billede thomas_p Nybegynder
10. juni 2007 - 16:03 #17
Indtil videre arbejder jeg bare på at få programmet til at lave de basale slægskabsudregninger ud fra en kommasepareret tekstfil. Efterfølgende vil jeg prøve om det kan udvides ved at bruge data fra en database, og om jeg kan tegne et stamtræ for bestanden.
Som sagt har jeg kun eksperimenteret med programmering i ca. 2måneder. At jeg valgte visual basic var et rent tilfælde. Et sted skulle jeg jo starte. :-)
Som du selv skriver er populationsstørrelsen antallet af individer i en bestand. Den effektive populationsstørrelse er en måde at kvatificere hvor hurtigt en bestand mister genetisk diversitet. Hvis du f.eks. har to bestande hver med 50 hunner og 50 hanner er bestandsstørelsen 100 i begge. Hvis nu alle 100 formerer sig i den ene, men at de 50 hunner befrugtes af samme han i den anden, vil den effektive populationsstørrelse være langt større i den hvor alle bidrager genetisk til næste generation.
Populationsstruktur siger noget om, om en avlsbestand består af mindre tættere beslægtede grupper. f.eks. kan det tænkes at solsortene på fyn er tættere beslægtet med hinanden end de er med dem på amager. I min situation ønsker jeg dog at se på om der er en genetiske gruppedannelser inden for en bestand af hunde i DK.

Mvh Thomas
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester