Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pronalazenje duplih maticnih brojeva

[es] :: Access :: Pronalazenje duplih maticnih brojeva

[ Pregleda: 6974 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

1900-ti
Beograd

Član broj: 52886
Poruke: 144
82.117.196.*



Profil

icon Pronalazenje duplih maticnih brojeva22.05.2008. u 14:26 - pre 193 meseci
Cao,

Pitanje je sledece, imam tabelu i u njoj polje JMBG, kako da napisem upit i da pronadjem one maticne brojeve koji se ponavljaju....

Hvala
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
77.46.167.*



+41 Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 14:45 - pre 193 meseci
Code:

SELECT JMBG, (Count(*) - 1) AS BrojDuplih FROM TvojaTabela GROUP BY JMBG HAVING Count(*) > 1
 
Odgovor na temu

1900-ti
Beograd

Član broj: 52886
Poruke: 144
82.117.196.*



Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 15:40 - pre 193 meseci
Hvala goranvuc, ali mozda nisam dobro definisao, ja kada uradim upit koji si mi napisao dobijem samo broj duplih, to sam uradio sa distinct jmbg, ali voelo bih da vidim spisak koji su to maticni brojevi da bih mogao da ih obrisem, unapred hvala
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 15:55 - pre 193 meseci
Imaš u Access-u Find Duplicates query.
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
77.46.167.*



+41 Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 16:35 - pre 193 meseci
Citat:
1900-ti: Hvala goranvuc, ali mozda nisam dobro definisao, ja kada uradim upit koji si mi napisao dobijem samo broj duplih, to sam uradio sa distinct jmbg, ali voelo bih da vidim spisak koji su to maticni brojevi da bih mogao da ih obrisem, unapred hvala

Pa dobio si spisak JMBG-ova koji imaju vise od jedne pojave - ne razumem sta je problem. Ako hoces SQL koji ti brise sve duplikate, a ostavlja samo jednu pojavu onda moras da preciziras koje redove ostavljas, tj. koji ti je kriterijum brisanja (Ako imas 3 ista, brises 2 a ostavljas 1; nagradno pitanje je: koji ostaje?)

P.S.

Getsbi, nemoj da se ljutis, ali mislim da bi trebalo forsirati resenja koja se baziraju na SQL-u, a ne na resenja koja nudi Access Framework, tj. njeovi plug-inovi i wizardi - to je moje skromno misljenje.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 18:52 - pre 193 meseci
Ne ljutim se. Ali mislim da ako uradi SQL upit iz Query Designera ili pomoću Wizarda i zadovoljan je rezultatom, može da isčita SQL sintaksu putem SQL View i da nešto nauči. Naravno ako ga interesuje. To da li će mo recimo da forsiramo Lookup Wizarde za povezivanje tabela ili direktno povezivanje u prozoru Relationships, QBE okno za querije ili pisanje u već pomenutom SQL View prozoru............. i da ne nabrajam više, je manje važno. Za Access je bitno da sve to koristi da bi ostao SUBP i alatka za brzi razvoj aplikacija. Ostalo su afiniteti. Dakle ne ljutim se.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 20:46 - pre 193 meseci
Lepo je insistirati na SQL resenjima. Medjutim, Access ima odvratan SQL prozor i uopste ne krivim nikoga sto ne pise kod direktno

Ko se ipak odluci da pise kod u SQL prozoru direktno, evo male pomoci:

http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl

Dati sajt nudi besplatan SQL formatter koji radi i sa Access kverijima. Tako, kad napravite pomocu grafickog wizarda kveri u Accessu, otvorite SQL prozor, Ctrl C ceo izraz (koji grozno izgleda) pa ga onda Ctrl P u formatter, kliknete Format SQL dugme i u donjem prozoru donbijete lepo formatiran izraz, koji onda cak mozete i da razumete.

Accessov graficki kveri dizajner je toliko dobar (mnogo bolji nego onaj sto nudi MS SQL u bilo kojoj verziji) da ja licno u Accesu retko kada kucam SQL (samo za nebulozne kverije). A kad predjem u MS SQL okruzenje, ni puskom me ne bi naterali da koristim graficki alat. Zvuci uvrnuto, ali je tako.

Primer - originalni SQL izkaz u Access SQL prozoru:
Code:

SELECT dbo_vwSDC_BoardUpload_Contacts.OrderNumber, dbo_vwSDC_BoardUpload_Contacts.ProjectID, dbo_vwSDC_BoardUpload_Contacts.Lang, dbo_vwSDC_BoardUpload_Contacts.BrdMident, dbo_vwSDC_BoardUpload_Contacts.BrdName, dbo_vwSDC_BoardUpload_Contacts.FirstSubmission, dbo_vwSDC_BoardUpload_Contacts.LastSubmission, dbo_vwSDC_BoardUpload_Contacts.Successful, dbo_vwSDC_BoardUpload_Contacts.Pending, dbo_vwSDC_BoardUpload_Contacts.Unsuccessful, dbo_vwSDC_BoardUpload_Contacts.TotalFiles, dbo_vwSDC_BoardUpload_Contacts.StudentCnt, dbo_vwSDC_BoardUpload_Contacts.SchoolCnt, dbo_vwSDC_BoardUpload_Contacts.StudentsLastYear, dbo_vwSDC_BoardUpload_Contacts.SchoolsLastYear, dbo_vwSDC_BoardUpload_Contacts.DifStudents, dbo_vwSDC_BoardUpload_Contacts.DiffStudentsPCT, dbo_vwSDC_BoardUpload_Contacts.FailedBoards, dbo_vwSDC_BoardUpload_Contacts.ConditionalPass, dbo_vwSDC_BoardUpload_Contacts.BoardsInContact, dbo_vwSDC_BoardUpload_Contacts.ReportDate
FROM dbo_vwSDC_BoardUpload_Contacts INNER JOIN tblCurrentProject ON dbo_vwSDC_BoardUpload_Contacts.ProjectID = tblCurrentProject.ProjectID
ORDER BY dbo_vwSDC_BoardUpload_Contacts.OrderNumber;

To samo neprijatelju mozemo d apozelimo da procita i snadje se
Ctrl C, pa ctrrl P i klik na dugme Format SQl daje ovio:
Code:

* Powered by General SQL Parser (www.sqlparser.com) */

SELECT   dbo_vwSDC_BoardUpload_Contacts.OrderNumber,
         dbo_vwSDC_BoardUpload_Contacts.ProjectID,
         dbo_vwSDC_BoardUpload_Contacts.Lang,
         dbo_vwSDC_BoardUpload_Contacts.BrdMident,
         dbo_vwSDC_BoardUpload_Contacts.BrdName,
         dbo_vwSDC_BoardUpload_Contacts.FirstSubmission,
         dbo_vwSDC_BoardUpload_Contacts.LastSubmission,
         dbo_vwSDC_BoardUpload_Contacts.Successful,
         dbo_vwSDC_BoardUpload_Contacts.Pending,
         dbo_vwSDC_BoardUpload_Contacts.Unsuccessful,
         dbo_vwSDC_BoardUpload_Contacts.TotalFiles,
         dbo_vwSDC_BoardUpload_Contacts.StudentCnt,
         dbo_vwSDC_BoardUpload_Contacts.SchoolCnt,
         dbo_vwSDC_BoardUpload_Contacts.StudentsLastYear,
         dbo_vwSDC_BoardUpload_Contacts.SchoolsLastYear,
         dbo_vwSDC_BoardUpload_Contacts.DifStudents,
         dbo_vwSDC_BoardUpload_Contacts.DiffStudentsPCT,
         dbo_vwSDC_BoardUpload_Contacts.FailedBoards,
         dbo_vwSDC_BoardUpload_Contacts.ConditionalPass,
         dbo_vwSDC_BoardUpload_Contacts.BoardsInContact,
         dbo_vwSDC_BoardUpload_Contacts.ReportDate
FROM     dbo_vwSDC_BoardUpload_Contacts
         INNER JOIN tblCurrentProject
           ON dbo_vwSDC_BoardUpload_Contacts.ProjectID = tblCurrentProject.ProjectID
ORDER BY dbo_vwSDC_BoardUpload_Contacts.OrderNumber;

Razlika je ocigledna a ima i drugih lepih opcija, na primer da ceo izraz pretvori u VB string, da bi se koristio za ADO/DAO rekordset...

 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
77.46.167.*



+41 Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 21:16 - pre 193 meseci
A ja jos nisam dobio odgovor na nagradno pitanje
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pronalazenje duplih maticnih brojeva22.05.2008. u 21:16 - pre 193 meseci
Dodao sam link u Top temu "Korisni linkovi" Zbilja zaslužuje.


P.S. @ goranvuc
Šta je nagrada?
 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.rs.



+8 Profil

icon Re: Pronalazenje duplih maticnih brojeva23.05.2008. u 00:26 - pre 193 meseci
Citat:
Ako imas 3 ista, brises 2 a ostavljas 1; nagradno pitanje je: koji ostaje?)
Ja bik dodao AutoNumber polje u tabelu da mogu da ih razlikujem I, šta sam osvojio ?
Ozbiljan i odgovoran mladić
 
Odgovor na temu

Leruman
Srbija

Član broj: 141635
Poruke: 92
*.evizo.net.



+4 Profil

icon Re: Pronalazenje duplih maticnih brojeva23.05.2008. u 08:04 - pre 193 meseci
Lako je dobiti duple maticen brojeve, pitanje je kako da znas koji da obrises.
Da li imas jos neki kriteriijum za razlikovanje unosa u tabelu.
Stavi format cele tabele iz koje treba da brises podatke, tek onda mozemo da ti pomognemo.
Stavi jos i format i ključeve tabela koje su vezane za tu tabelu, posebo ako je veza preko JMBG
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
77.46.167.*



+41 Profil

icon Re: Pronalazenje duplih maticnih brojeva23.05.2008. u 08:13 - pre 193 meseci
Citat:
Getsbi: P.S. @ goranvuc
Šta je nagrada?


Nagradno pitanje je bilo upućeno postavljaču topika, a nagrada bi bila rešenje njegovog problema
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pronalazenje duplih maticnih brojeva23.05.2008. u 14:08 - pre 193 meseci
Od ovoga je sve pocelo:
Citat:
Pitanje je sledece, imam tabelu i u njoj polje JMBG, kako da napisem upit i da pronadjem one maticne brojeve koji se ponavljaju....


Ja to tumacim ovako: pokazi mi kompleten rekorde (JMBG, ime, prezime, datum rodjenja...) gde JMBG nije jedinstven (ja bih doao i JMBG IS NOT NULL, da bude manje guzve)

Goran je dao kveri koji lista sve JMBG koji se pojavljuju vise od jednom u tabeli. To je OK, ali je samo polovina posla. Coveku treba verovatno nesto ovako:

Code:

SELECT *
FROM   TVOJATABELA
WHERE  JMBG IN (SELECT   JMBG
                FROM     TVOJATABELA
                GROUP BY JMBG
                HAVING   COUNT(* ) > 1)
ORDER BY JMBG 


SELECT u subkveriju je Goranov kveri, sa minimalnom modifikacijom - izbacena kolona koja pokazuje BrojKopija. Iance IN ne bi moglo da radi i trebao bi nam JOIN pa bi kveri mozda bio manje razumljiv.

Postavljac pitanja je mogao da dobije isti rezultat koriscenejm Access 'Find Duplicates' wizarda.

A kako ukloniti duplikate? Pogledaj ih, pa odluci. Nije uvek lako odluciti.

Mozda je najboljilek da se prvo uklone duplikati, pa onda u tabeli stavi UNIQUE index na kolonu JMBG. Naravno, ako TvojaTabela nije nesto sto si recimo dobio od nekoga, pa sad cistis podatke pre nego ih prebacis u pravu tabelu, koja naravno ne dozvoljava da se unesu duplikati. Dodavanje Autonumber nije resenje. Moje ime i moj JMBG moze na taj nacin da se unese deset puta, i da ni jedan rekord ne bude potpuni duplikat - jer ce imati razlicite Autonumber vrednosti.


 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.rs.



+8 Profil

icon Re: Pronalazenje duplih maticnih brojeva23.05.2008. u 17:56 - pre 193 meseci
Osećam se prozvanim između redova Bilo je pitanje kako ukloniti duplikate, to podrazumeva da ostanu svi unique JMBG, odnosno po jedan od onih koji se ponavljaju. Zato treba dodati AutoNumber polje da bi se zdrav duplikat odvojio od lošeg duplikata prilikom brisanja tih loših

Ko razume shvatiće
Ozbiljan i odgovoran mladić
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
77.46.167.*



+41 Profil

icon Re: Pronalazenje duplih maticnih brojeva23.05.2008. u 18:20 - pre 193 meseci
Mislim da ti nisi nas razumeo: Mozes ti obrisati duple redove iz tabele bez obzira da li ima surogat kljuc (taj tvoj autonumber) ili ne, moje nagradno pitanje se odnosilo na kriterijum sta ostaje, a sta se brise i @Zidar je lepo sve dodatno pojasnio, ali umesto da se javi pokretac teme i kaze nam sta ce da brise ako ima ovakve podatke npr:

JMBG IME PREZIME

2511970455988 Goran Vucicevic
2511970455988 GORAN VUCICEVIC
2511970455988 GORAN VUČIĆEVIĆ
2511970455988 Goran Vucicevic

javljas se ti i osecas se prozvanim
 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.rs.



+8 Profil

icon Re: Pronalazenje duplih maticnih brojeva23.05.2008. u 23:48 - pre 193 meseci
Ja sam jedini koji je pominjao AutoNumber kao rešenje koje je poštovani kolega Zidar okarakterisao ;
Citat:
Dodavanje Autonumber nije resenje
Ja i dalje stojim pri tome da je ovo najbolji način za razdvajanje duplikata, moguće je pre toga uporediti da li prvih 7 cifara JMBG odgovara datumu rođenja neke osobe, ali mislim da niko nema toliko slobodnog vremena da od slučaja do slučaja proverava koji instance JMBG treba da ostane u tabeli, a koji ne. Ja bih nakon dodavanja autonumber postavio First(AutoNumberField), Group By JMBG i obrisao sve recorde koji se ne nalaze u tom subquery i mirna Bosna.

Naravno, pravljenje nove tabele sa unique indexom na JMBG kao što kaže Zidar je bez sumnje najbolje i najpraktičnije rešenje.
Ozbiljan i odgovoran mladić
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pronalazenje duplih maticnih brojeva24.05.2008. u 08:56 - pre 193 meseci
Evo ovde je rešenje:
http://www.praktikum.co.yu/office/access/acc_130.asp#acc_130a
 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.rs.



+8 Profil

icon Re: Pronalazenje duplih maticnih brojeva24.05.2008. u 15:26 - pre 193 meseci
Kao što se iz primera vidi, ovde je ključ rešenja polje IDUnos, dakle Autonumber polje, sa razlikom što umesto mog primera sa First koristi Min, ali to mu dođe isto
Ozbiljan i odgovoran mladić
 
Odgovor na temu

vstefanovicc
Pancevo

Član broj: 35499
Poruke: 25
85.222.178.*



Profil

icon Re: Pronalazenje duplih maticnih brojeva02.09.2009. u 19:17 - pre 178 meseci
Imam jedno dodatno pitanje, kako da u tabelu unesem maticni broj (Primary key se nalazi na polju Prezime i ime - ovo mi je bitno jer je vezano za query i formu), a da ne postoji mogucnost duplikata, to jest da je polje indexovano. (takodje molim VB kod za poruku "JMBG vec postoji...")
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pronalazenje duplih maticnih brojeva02.09.2009. u 20:50 - pre 178 meseci
Indeksiraš ga sa Yes (No Duplicates). Access neće dozvoliti unos duplog. Ako baš nećeš da te access upozorava već da imaš sopstveni kod, onda pogledaj ovde http://www.elitesecurity.org/t245822-0#1482976 sam ostavio VBA kod za proveru dupliranja podataka po unosu. Ti ga prilagodi.
 
Odgovor na temu

[es] :: Access :: Pronalazenje duplih maticnih brojeva

[ Pregleda: 6974 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.