Kysymys taulukoiden yhdistämisestä

Mikes

Elikkä kysymys koskee kahden eri mittaisen taulukon liittämisestä. Toisessa talulukossa on kolme riviä ja 2 saraketta (;=solujen väli) esim:
1;2
2;34
3;44

Toisessa taas kaksi riviä ja saraketta esim:
1;33
3;23

Miten saan nuo liitettyä niin että lopputulos on "automaattisesti" seuraavanlainen:
1;2;1;33
2;34;;
3;44;3;23

Elikkä niin että jälkimmäisestä taulukosta rivit menevät oikeille paikoilleen ekaan taulukkoon. Elikkä taulukkojen 1. sarakkeiden numerot "löytävät toisensa".


Yllä hyvin yksinkertaistettu taulukko, mutta jos rivejä on tuhansia on manuaalinen liittäminen hankalaa.

Varmaan ihan simppeli homma mutta vasta-alkajana en keksi miten moinen toteutetaan.

Kiitos!

5

1421

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Magi_Suuri

      Jos tekstitiedostojen kanssa pelaat, Linuxissa/Unixissa tuo menisi seuraavalla komennolla:

      $ join f1.txt f2.txt -t ';' -a 1
      1;2;33
      2;34
      3;44;23

      jos yhdistettävät tiedot ovat tiedostoissa f1.txt ja f2.txt. Erotinmerkki asetetaan -t:llä. Muuten tehdään tavallinen join, mutta -a-parametrilla vastaamattomat rivit otetaan ensimmäisestä tiedostosta.

      • Mikes

        Kiitos vastauksesta!

        Elikkä käyttis on XP ja tiedosto on excel/Open office taulukko. Siis Open Office taulukkolaskennassa näitä yritin yhdistellä. Tosin nuo tiedostot on kyllä myös tekstitiedostoina joten voi ne liittää ennen taulukkona avaamistakin. Ajattelin jos ne saisi avattua samaan Open office taulukkoon (siis ensin toinen auki ja lisätään tähän toinen copy pastella) ja taulukkolaskenta osaisi jollain komennolla järjestää rivit oikein.

        Kiitos!


      • Magi_Suuri
        Mikes kirjoitti:

        Kiitos vastauksesta!

        Elikkä käyttis on XP ja tiedosto on excel/Open office taulukko. Siis Open Office taulukkolaskennassa näitä yritin yhdistellä. Tosin nuo tiedostot on kyllä myös tekstitiedostoina joten voi ne liittää ennen taulukkona avaamistakin. Ajattelin jos ne saisi avattua samaan Open office taulukkoon (siis ensin toinen auki ja lisätään tähän toinen copy pastella) ja taulukkolaskenta osaisi jollain komennolla järjestää rivit oikein.

        Kiitos!

        Ok, luulin että tiedot olivat tekstitiedostossa, kun esitit ne tuolla puolipistemerkinnällä.

        No se mitä ylläoleva teki oli kahden tietokantataulun join-operaation. En tiedä saako moista tehtyä Calcissa helposti, taitaa Basella olla helpointa.

        Koska haluat myös toisen taulun rivin vaikka vastinetta ei löytyisikään toisesta, olisi kyseessä "FULL OUTER JOIN"-kysely. OpenOffice ei käsittääkseni tue tätä kyselyä kevyessä XML-pohjaisessa tietokantamuodossa (joillain muilla muodoilla se toimii), mutta jos toispuoleinen ratkaisu riittää niin LEFT OUTER JOIN ja RIGHT OUTER JOIN toimivat.

        Eli tehdään kaksi taulua Taulu1 ja Taulu2, joissa on "id" pääavaimena. Tehdään seuraavanlainen SQL-kysely:

        SELECT * FROM { OJ "Taulu1" LEFT OUTER JOIN "Taulu2" ON "Taulu1"."id" = "Taulu2"."id" }

        tai hieman siistimmin:

        SELECT "Taulu1"."id", "Taulu1"."arvo", "Taulu2"."arvo" FROM { OJ "Taulu1" LEFT OUTER JOIN "Taulu2" ON "Taulu1"."id" = "Taulu2"."id" }


      • Mikes
        Magi_Suuri kirjoitti:

        Ok, luulin että tiedot olivat tekstitiedostossa, kun esitit ne tuolla puolipistemerkinnällä.

        No se mitä ylläoleva teki oli kahden tietokantataulun join-operaation. En tiedä saako moista tehtyä Calcissa helposti, taitaa Basella olla helpointa.

        Koska haluat myös toisen taulun rivin vaikka vastinetta ei löytyisikään toisesta, olisi kyseessä "FULL OUTER JOIN"-kysely. OpenOffice ei käsittääkseni tue tätä kyselyä kevyessä XML-pohjaisessa tietokantamuodossa (joillain muilla muodoilla se toimii), mutta jos toispuoleinen ratkaisu riittää niin LEFT OUTER JOIN ja RIGHT OUTER JOIN toimivat.

        Eli tehdään kaksi taulua Taulu1 ja Taulu2, joissa on "id" pääavaimena. Tehdään seuraavanlainen SQL-kysely:

        SELECT * FROM { OJ "Taulu1" LEFT OUTER JOIN "Taulu2" ON "Taulu1"."id" = "Taulu2"."id" }

        tai hieman siistimmin:

        SELECT "Taulu1"."id", "Taulu1"."arvo", "Taulu2"."arvo" FROM { OJ "Taulu1" LEFT OUTER JOIN "Taulu2" ON "Taulu1"."id" = "Taulu2"."id" }

        Kiitos vastauksesta. En tosin tiedä edes mikä base on joten pitää keksiä toinen keino. Eiköhän se tuosta lutviinnu.


      • Magi_Suuri
        Mikes kirjoitti:

        Kiitos vastauksesta. En tosin tiedä edes mikä base on joten pitää keksiä toinen keino. Eiköhän se tuosta lutviinnu.

        OpenOfficen tietokantaohjelma. Mutta jos et tiedä mikä se on, voi tuon tekeminen sillä olla turhan työlästä, vaikkakin ehkä opettavaista.

        Calcilla tuon saa tehtyä käyttämällä Calcin VLOOKUP-funktiota hakemaan tiedon kakkostaulukosta ykköstaulukon tunnistenumeron perusteella. Tällä saa haettua vastineet vain toisen taulukon perusteella, eli jos haluaa molempiin suuntiin, pitää tehdä sama juttu molemmille taulukoille. Sitten kopioidaan tulokset peräkkäin, järjestetään ja suodatetaan duplikaatit pois. Tässä on jonkin verran käsityötä, mutta onnistuu kyllä.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ruotsissa uusi vakava ongelma: Vanhusten seksuaalinen hyväksikäyttö

      palvelutaloissa ja kotihoidossa. Tämäkin on ihan puhtaasti väärän maahanmuuton vaikutusta, sillä tekijät ovat kaikki keh
      Maailman menoa
      73
      1920
    2. Työeläkkeiden maksaminen lopetettava ASAP.

      "Vanhimmat sukupolvet ovat saaneet vastinetta eläke­maksuilleen monin­kertaisesti nykyisiin ja tuleviin sukupolviin verr
      Maailman menoa
      97
      1663
    3. Millä kolmella sanalla

      Kuvailisit kaivattuasi?
      Ikävä
      147
      1207
    4. Kyllä mä oon valmis jos sä oot

      Vaikka ja mihin... mutta paikka on väärä.
      Ikävä
      59
      688
    5. Miltä se tuntuu olla

      vihattu ja kukaan ei puolusta?
      Ikävä
      198
      652
    6. Järkytys uutisten ystäville - Huomenta Suomen kesään iso muutos

      Huomenta Suomi on monen suomalaisen vakio-ohjelma. Suorana nähtävä Huomenta Suomi seuraa päivän tärkeimpiä uutisia, pol
      Maailman menoa
      6
      636
    7. Trumpille jälleen voitto

      Trump ensin tuhosi Iranin ydinohjusprojektin, jotta ko. terroristivaltio ei voisi aiheuttaa ydinsotaa. Ja nyt Trump pako
      Maailman menoa
      191
      553
    8. Mitä mietit juuri nyt?

      🤔
      Ikävä
      54
      547
    9. Aurinkoni...

      On ikävä sua ❤️
      Ikävä
      46
      488
    10. Haluan teidät molemmat elämääni

      Toista rakastan todella syvästi, ja toinen on kuin paras ystävä minulle. En voi luopua kummastakaan... </3
      Ikävä
      37
      462
    Aihe