Taulun A data taulun B muotoon!

Millä skriptillä tahi SQL-lausekkeella voisin konvertoida taulun A tiedot taulun B muotoon?


Table A Person Month Value
A 3 2,71
A 3 130,00
A 6 2,65
A 6 34,00
A 6 25,10
A 6 5,50
A 12 2,61
B 3 21,10
B 3 2,35
B 6 2,91
B 12 2,76
B 12 43,00
C 3 13,00
C 6 6,00
C 12 11,20

Table B Person Month Value Value Value Value
A 3 2,71 130,00
A 6 2,65 34,00 25,10 5,50
A 12 2,61
B 3 21,10 2,35
B 6 2,91
C 3 13,00
C 6 6,00
C 12 11,20
7221
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Microsoftin sivuolta löytyy kaikkee SQL kielesstä .... Ei tälläsiä töitä ala kukaan sun puolesta tekemään. PAitti jos palkasta sovitaan. Onhan niitäki jotka ottaa toimeksiantoja ja lähettää työn suoritettavaksi kiinaan ja vetää loput välistä. Eihän me ees autettas jos me luotas ratkaisu valmiiksi... Enkä ole ihan varma tosta datasta mitä sen pitäs esittää ... Karkasikohan toi rivitys...? On minullakin koko SQLkoulutussetti kansiossa. Niille on omat keskustelufoorumit eri puolilla nettiä

Näillä palstoilla pyörii enempi taviksia ja suurin osa neuvovista ei ole töissä käynykään varmaan 20 vuoteen ... Tunnetaan nimiltä ihan toisissa olosuhteissa kuin mitä antavat ymmärtää. Työssä käyvät ei usein istu näillä foorumeilla tavakseen. Englanninkielen taito avustaisi etsinnässäsi. Pojat tulee kohta kyllä syöttään läpiä päähänsä perässä mutta mee oikeesti selaan foorumeita joissa on ton tietokantaohjelmoinnin ammattilaisia tai kysele joltain erikoistuneelta kouluttajalta. Mikään tähtitieteellinen setti toi ei oo mutta olen valinnu aikaaan elämän koodaamisen sijaan ja pistä tälläsiä asioita arkimuistiini.

Äänestä

Monen samannimisen kentän tekeminen.

Äänestä

Ei tuollaista B-taulua tarvita (huono toteutus, vaikka siinä olisikin uniikit kentät value1 value2 jne, se ei vaan toimi tauluna).

A-tauluun voidaan tehdä haluttu select-haku mikä tuottaa vastaavat rivit mitkä B-tauluehdotuksessa nyt on, käyttämällä group by ja order by sql-valitsimia, esim tietyn henkilön ostokset (valuet) kuukausittain järjestettynä.

A-taulun rivit pitäisi olla uniikkitunnistettavia=sopiva primary key, esim
Id, person, timestamp, value
(id voisi olla autogeneroitu=uniikki primary key, timestamp on datetime tai pelkkä date, kk on liian epätarkka aikakentäksi mutta kk saadaan kyllä luettua datetime tai date arvosta käytettäväksi select-ehtona haluttaessa)

Tietokantasuunnittelu pitäisi tehdä tehtäväkuvaus-käsitemalli(luokkakaavio)-tietomalli-normalisointi-menetelmällä, sillä saadaan käsiteltyä kokonaisuus ja oikeat taulut (nyt tässä kysymyksessä on esitetty vain yksi taulu eikä tässä näy mistä sen kentät tulee eli kuinka järkevä se on). Googlaa: tietokantasuunnittelu
Select-hakujen teko vaatii sql:n opiskelua, esimerkkejä löytyy googlaamalla.

Äänestä
  • Tyypillinen vastaus, jossa tiedetään tarkalleen syyt ja seuraukset jo kehittyneestä tietokannassa. Eli jos joku kysyy neuvoa, kannattaa kirjoitaa neuvo, eikä aloittaa moraalisaarnaa.
    Toki neuvossa on perää, mutta tuo neuvo nyt näyttää lähinnän tietokantasuunnittelun perusteet kirjasta pikaisesti luetultulta heitolta.

    Mutta totta. esimerkkejä löytyy googlaamalla. Vastaus on äärimmäisen helppo ja löytyy tämän toteamuksen alta

    Äänestä

Temppu on helppo.
Kun taulut on olemassa niin
insert into taulua (kentät....) select kentät from taulub

Äänestä
  • Hatarin tiedoin ja vanhoja muistellen (mySQL). Ei tarvitse vakavasti ottaa. 1 plus 1:tä peesaten, ensimmäisessä taulussa jotain tolkkua, toisessa ei, jos sitä katsoo päivittämisen kannalta. Siihen voi henkilön arvoja tallentaa vaikka kuinka paljon. Onkohan tuo pilkun käyttö minkään arvon kohdalla perusteltua, siis piste. Mainittu id tietysti (primary, autocomplete), ja edelleen toistoa: date- tai ehkä time- kentistä voisi olla hyötyä datan käsittelyssä, enemmän kuin 1,2,3 jne. Aika peruskauraa, joka on osattava, jos kiinnostusta riittää. Vihjeenä: Kiinaan asti ei koodaria kannata lähteä jäljittämään.

    Äänestä

  • Super Major kirjoitti:

    Hatarin tiedoin ja vanhoja muistellen (mySQL). Ei tarvitse vakavasti ottaa. 1 plus 1:tä peesaten, ensimmäisessä taulussa jotain tolkkua, toisessa ei, jos sitä katsoo päivittämisen kannalta. Siihen voi henkilön arvoja tallentaa vaikka kuinka paljon. Onkohan tuo pilkun käyttö minkään arvon kohdalla perusteltua, siis piste. Mainittu id tietysti (primary, autocomplete), ja edelleen toistoa: date- tai ehkä time- kentistä voisi olla hyötyä datan käsittelyssä, enemmän kuin 1,2,3 jne. Aika peruskauraa, joka on osattava, jos kiinnostusta riittää. Vihjeenä: Kiinaan asti ei koodaria kannata lähteä jäljittämään.

    Siis date-keentästä, ei kentistä. Muuten ihan turha vastaus, yksplusyks kertoi jo olennaisen.

    Äänestä

Kommentoi aloitusta


mjkoski kirjoitti:

Millä skriptillä tahi SQL-lausekkeella voisin konvertoida taulun A tiedot taulun B muotoon?


Table A Person Month Value
A 3 2,71
A 3 130,00
A 6 2,65
A 6 34,00
A 6 25,10
A 6 5,50
A 12 2,61
B 3 21,10
B 3 2,35
B 6 2,91
B 12 2,76
B 12 43,00
C 3 13,00
C 6 6,00
C 12 11,20

Table B Person Month Value Value Value Value
A 3 2,71 130,00
A 6 2,65 34,00 25,10 5,50
A 12 2,61
B 3 21,10 2,35
B 6 2,91
C 3 13,00
C 6 6,00
C 12 11,20

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu