Zavrieť

Porady

MS Access - Odstraň.dotaz duplicitných záznamov

Ahojte,

opäť prosím o radu =o) ...potrebujem vytvoriť odstraňovací dotaz duplicitných záznamov z jednej tabulky. Mám dotaz ktorým zobrazím duplicitné hodnoty:

SELECT Pole1, Pole2, Pole3, Count(*) AS pocet
FROM Tabulka
GROUP BY Pole1, Pole2, Pole3
HAVING Count(*)>1

ale keď ich chcem odstrániť tak sa zobrazí hláška, že: dáta sú určené len pre čítanie. Skúšal som tento dotaz zmeniť na odstraňovací ale tiež to nešlo.

vopred ďakujem
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    Pidgey je offline (nepripojený) Pidgey

    Štastný človek :) Pidgey
    no, takto narychlo neviem,ale ak by si ich dal tak odstranit ako pises, mam pocit, ze odstranis vsetky tie zaznami, cize vsetky duplicity, vratane aj toho jedneho prvotneho zaznamu (cize s tymi hodnotami ti uz nezostane ziaden zaznam). Neviem ci pojde urobit taky dotaz, aby to vsetko sparvil v jednom kroku, ja by som skor vyuzil nejake dalsie polia v tabulke, ktorym by som priradil nejaku hodnotu na zaklade toho ze count > 1 anasledne by som som dal vymazat vsetky zanamy z tej tabulky s danym vyrazom okrem zanamu s najnizsim poradovym cislom (aby s ami nevymazali vsetky zaznami duplicit ako som pisla na zaciatku.
    Teda, len nahlas rozmyslam....najprv by som spravil vytvaraci dotaz, ktory by mi zobrazil tieto duplicitne vyrazy, nasledne by som spravil aktualizacny dotaz, ktory by priradil istu hodnotu "X" do isteho pola (na to urceneho v tabulke Tabulka) - s vazbami medzi pole 1, 2, 3, cize oznaci iba tym riadkom, kde su vsetky tie tri hodnoty zhodne-nase duplicity.Nasledne by som spravil dotaz, ktory by mi vymazal vsetky riadky s danou hodnotou "X" a napr s max poradovym cislom v tabulke (hodnota ID napr, alebo nieco co tam take mas). a tento postup opakoval dovtedy, pokial by dotaz, ktory vytvara tabulku s duplicitami nejake duplicity nachadzal. Myslim, ze vsetko toto by sa dalo nahodit do makra, aby to clovek nemusel X krat po sebe spustat...
    mozno je aj jednoduchsi sposob, ja pisem to co poznam....sorac za preklepy...

    nechce sa mi to mazat,ale uz teraz viem ze je to blbost co som napisal....teda v tom dotaze, ktory by to mal mazat.Problem vidim v tom priradeni hodnoty, nakolko kazda duplicita by mala mat jedinecnu hodnotu. Asi nastavit priradovanie hodnoty X+1 (ak take nieco funguje), a potom to nejako zapracovat do toho mazania. Kurna, nejako sa v tom zamotavam Mozno ma zajtra nieco ine napadne. Ospravedlnujem sa ak som zbytocne zamotal hlavu
    Naposledy upravil Pidgey : 05.10.09 at 23:25

    Pidgey je offline (nepripojený) Pidgey

    Štastný človek :) Pidgey
    No, nasiel som tento link http://office.microsoft.com/cs-cz/ac...CL100570041029
    tam je troska o tom pisane a pisu tam prave opacny postup, ze sa nedaju vymazat duplicity,ale ze sa to robi do novej tabulky cez pridavaci dotaz. Mna napadlo zjednodusit ten moj postup tak, ze v prvom kroku by som vytvoril dotaz (nemusi byt vytvaraci) a do selektu by som doplnil aby mi vypisalo aj maximalnu hodnotu pri duplicite z pola ID. Tento selekt by som spojil s povodnou tabulkou s vazbou cez ID a dal zobrazit vsetky zaznamy s Tabulky. Potom ich vies , minimalne po zobrazeni rucne, vymazat. Len, ten selekt s tou vazbou cez ID musis robit dotedy, pokial sa ti zobrazuju nejake data. Zial neprisiel som na sposob, ako dotazom vymazat cely zaznam z nejakej tabulky (hodnoty z poli hej,ale nie cely zaznam...). Ak by taky nejaky sposob bol, dalo by sa to dat cele do makra.

    Ardonaiel je offline (nepripojený) Ardonaiel

    Ardonaiel
    Pidgey, vďaka. Urobil som to podľa toho návodu čo si poslal link, aj to je pre mňa riešenie =o)

    sthruska je offline (nepripojený) sthruska

    sthruska
    Ja by som použil tú dočasnú tabuľku. Viackrát som čítal o podobných úlohách (bez rozdielu DB) a skoro vždy to bolo pomocou tabuľky.

    Pidgey je offline (nepripojený) Pidgey

    Štastný človek :) Pidgey
    No, rad som pomohol. Neskor ma napadlo, ten postup ako som pisal, teda vyselektovat vsetky duplicity spolu s info o najnizsom ID (alebo max ID). Potom by som urobil dotaz z vazbou s polami 1,2,3 a dal vsetky oznacit, a potom by som urobil dotaz s vazbou cez ID a tam by som oznacenie zrusil, cize by ostali oznacene iba nadbytocne duplicity.Potom by sa to dalo hromadne jednym vrzom vymazat, manualne. Odbobne by sa to dalo pouzit tak ze tie neoznacene by sa cez pridavaci dotaz nahadzali do novej tabulky,ale to uz je cca ten isty postup ako misali na microsofte. Ten postup cez pridavaci dotaz by mne osobne vadil nakolko vzdy pracujem s ID, cize jedinecnym identifikatorom zaznamu, automatickym cislom, co sa mi pri pridavacom dotaze asi neprenesie a vznikne novy

    sthruska je offline (nepripojený) sthruska

    sthruska
    //Ten postup cez pridavaci dotaz by mne osobne vadil nakolko vzdy pracujem s ID,
    Aj to sa dá pomocou dočasnej tabuľky. Jednoducho z originálnej tabuľky vymažeš všetky záznamy, ktoré nie sú v dočasnej.

    MS Access - Odstraň.dotaz duplicitných záznamov

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.