TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[Excell] Potrzebuję kwerendy wyszukującej/kasującej na podstawie cześci pola , Master/Pentium 18/10/06 21:59 Zadanie od znajomego. Jest sobie mini baza. Źle napisana ale działa :). Nie mam ochoty przepisywac jej od nowa (dużo roboty) szczególnie, że właściciel przyzwyczaił się do obecnej formy. A teraz pytanie: Mam pole typu nazwa gdzie nie mogą pojawić się wiersze z identycznymi TYLKO pierwszymi 5-6 znakami. Potrzebna jest mi kwerenda która te pola usunie lub przynajmniej pokaże. Office 2000. Mówiąc w skrócie: potrzebuję znaleść wiersze gdzie pierwsze 5-6 znaków jest identyczne. Pomocy - nie jestem dobry z tego :(.Nie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-) - Access nie Excell , Master/Pentium 18/10/06 22:00
idę spać :)Nie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-) - będę strzelał: , josh 19/10/06 00:03
To może być coś w tym stylu, ale to tylko przypuszczenie :)
kolumna - nazwa kolumny, ktora przechowuje znaki
tabela - nazwa tabeli
select t1.* from tabela t1 join tabela t2 on left(t1,6)=left(t2,6) and t1.kolumna <> t2.kolumna- poprawka: , josh 19/10/06 00:03
warunek mial byc oczywiscie taki:
eft(t1.kolumna,6)=left(t2.kolumna,6) and t1.kolumna <> t2.kolumna
Zobacz czy zadziała.- jak wrócę z pracy to sprawdzę , Master/Pentium 19/10/06 07:59
dziękiNie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-)
- Przepraszam, że dopiero odpowiadam , Master/Pentium 21/10/06 20:43
przez kilka dni nie mogłem zasiąść do tego projektu. Dzięki za odpowiedzi ale ja potrzebuję wyszukania tych duplikatów w jednej tabeli i w jednej kolumny. Z biegiem czasu pojawiły się tam duplikaty. Haczyk w tym, że duplikat ma identyczne kilka pierwszych znaków (kod) o potem idzie jego opis. Wiem, że w prawidłowej bazie danych kod i opis jest rozdzielone. Ta prawidłowa nie jest :), user się przyzwyczaił. Przymierzam się do rozdzielenia tego pola na dwa ale musiałbym przejrzeć i poprawić sporą cześć "aplikacji".Nie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-) - a czy ja pisałem, , josh 23/10/06 10:37
że tam są jakieś dwie tabele?- nie działa , Master/Pentium 24/10/06 21:20
błąd składniowy.
Chyba będę musiał pouczyć się SQL'a :(Nie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-) - w C++ napisałbym to w godzinę. , Master/Pentium 24/10/06 21:31
Tutaj męczę się juz którys wieczór.Nie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-) - może musi być , josh 25/10/06 00:28
"...tabela AS t1 join tabela AS t2..."
czyli w całości to by było:
select t1.*
from tabela as t1 join tabela as t2 on
left(t1.kolumna,6)=left(t2.kolumna,6)
and t1.kolumna <> t2.kolumna
Zobacz też, czy Access posiada funkcję "left" - może nie ma takiej, tylko samo "substring", a może nie wspiera zapisu "<>" tylko "!=" - pokombinować trzeba, osobiście Accessa widziałem tylko raz 5 lat temu.
Inna sprawa, że to, co napisałem, ogólnie jest mało sensowne :) ale wydaje mi się, że powinno działać, a jeśli nie to powinno przynajmniej zwracać złe wyniki, a nie od razu błąd składni.
- Spróbuj w ten sposób , Sherif 25/10/06 08:59
Jeżeli chcesz wyszukać nazwy powtarzających się grup
select left(nazwa, 5), count(*) from nazwatablicy
group by left(nazwa, 5)
having count(*) > 1;
Jeżeli chcesz wyświetlić powtarzające się rekordy
select * from nazwatablicy
where left(nazwa, 5) = (
select left(nazwa, 5) from nazwatablicy
group by left(nazwa, 5)
having count(*) > 1);
Jeżeli chcesz usunąć wszystkie powtarzające się rekordy
delete from nazwatablicy
where left(nazwa, 5) = (
select left(nazwa, 5) from nazwatablicy
group by left(nazwa, 5)
having count(*) > 1);
W powyższych zapytaniach zamień "nazwatablicy", "nazwa", "5" odpowiednio na nazwę tablicy w tej bazie, nazwę pola ze zduplikowanymi wartościami i ilość początkowych znaków branych pod uwagę.- hmm, , josh 25/10/06 09:57
to taki Access posiada podzapytania SQL? Się nie spodziewałem. - Poprawka , Sherif 25/10/06 10:07
W drugim i trzecim zapytaniu zamiast "=" powinno być "in". - dzięki , Master/Pentium 26/10/06 20:39
Działa !!!. Mnie interesował wariant trzeci.Nie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-) - a czy taki sposób nie spowodował , josh 28/10/06 15:07
wywalenia wszystkich powtarzających się rekordów, nie pozostawiając ani jednego?
- miałem na myśli wariant drugi , Master/Pentium 28/10/06 16:35
w skrócie policzyłem to wraz ze swoim pomysłem :), tamto zapytanie ładnie pokazuje duplikaty.Nie ma tego złego , co by się w gorsze
obrócić nie mogło - jak nie wierzysz
włącz komputer :-) |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|