Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie przy powtarzajacych sie rekordach
axxxon
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 28.10.2010

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




hmm, a group by?

Szczerze mówiąc, kiepsko zrozumiałem, co napisałeś. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
axxxon
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 28.10.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował axxxon 4.03.2011, 11:56:46
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. SELECT count(DISTINCT p1, p2, p3, p4) FROM tabela_historyczna

p1, p2, p3, p4 nazwy kolejnych pol w twojej tabeli historycznej
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 14:15