Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zliczanie przy powtarzajacych sie rekordach
Forum PHP.pl > Forum > Bazy danych > MySQL
axxxon
Witam!

Chciałbym zapytać się czy istnieje jakiś prosty sposób na wykonanie takiej oto sytuacji:
Mam 2 tabele - druga z nich to tabela historyczna w której zapisywane są wszelkie zmiany które zaszły w tej pierwszej(głównej), tj. rekordy mogą się powtarzać w sytuacji gdy raz wprowadzona zmiana została
później cofnięta.

Teraz moim problemem jest zliczenie wszystkich tych zapisanych rekordów dla danego elementu jednak bez powtórzeń.

Powiedzmy w tabeli głównej mamy pola

id, nazwa, p-p,data

w tabeli historycznej pola:

id-in,id,nazwa,p-p,data,data-in

moje zapytanie jest podobne do:
  1. SELECT DISTINCT `p-p` , `nazwa` , (
  2.  
  3. SELECT count( `id` )
  4. FROM `main` m2
  5. WHERE `m2`.`nazwa` = `m1`.`nazwa`
  6. )
  7. FROM `main` m1
  8. WHERE `status` =1;


Czy istnieje możliwość aby te pola zliczyć dodając np:
  1. (SELECT count(id) FROM main_h m3
  2. WHERE m3.p-p = m1.p-p tu jakies polecenie)

nie robiąc warunków sprawdzających czy danych wiersz sie nie powtarza czy jedynym wyjściem jest sprawdzać każde pole za pomocą where pole1=cos and pole2=cos itd questionmark.gif
erix
hmm, a group by?

Szczerze mówiąc, kiepsko zrozumiałem, co napisałeś. wink.gif
axxxon
właśnie nie chodzi o group by.

Chodzi mi ogólnie o to, że muszę wybrać z tabeli głównej parę pól (w tym zliczyc wszystki id obok ktorych wystepuje konkretna nazwa)
oraz
w jednym zapytaniu wybrać liczbę unikalnych wpisów dla tej nazwy spośród powtarzających się wierszy w tabeli historycznej. tj
tabela główna
np.
1|kot|3217|2012-12-12

tabela historyczna
np.
1|kot|3217|2013-12-12
1|kot|3217|2013-10-05
1|kot|3217|2013-12-12
2|kot|3217|2000-11-10
2|kot|3217|2000-11-10
czyli wynik zapytania jest taki 3217,kot,1,3, gdzie
3217 - unikalna wartość pola p-p,
kot - hasło
1- liczba wpisów w tabeli głównej dla 3217
3 - liczba unikalnych wpisów w tabeli historycznej dla 3217
wookieb
  1. SELECT count(DISTINCT p1, p2, p3, p4) FROM tabela_historyczna

p1, p2, p3, p4 nazwy kolejnych pol w twojej tabeli historycznej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.