Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obliczanie i wyswietlanie najwiekszego procentu
Forum PHP.pl > Forum > Bazy danych > MySQL
wasik89
Witam. mam 2 tabele. jedna z ocenami a druga z wpisami.

wpis:
  1. CREATE TABLE `wpis` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `data` date NOT NULL,
  4. `login` varchar(30) character SET utf8 NOT NULL,
  5. `naglowek` varchar(40) character SET utf8 NOT NULL,
  6. `tekst` tinytext character SET utf8 NOT NULL,
  7. `aktywnosc` tinyint(4) NOT NULL,
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=108 ;


oraz wpis_oceny:
  1. CREATE TABLE `wpis_oceny` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `wpis` int(11) NOT NULL,
  4. `ip` varchar(20) character SET utf8 NOT NULL,
  5. `glosy` int(11) NOT NULL,
  6. `glosy1` int(11) NOT NULL,
  7. `glosy2` int(11) NOT NULL,
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=27 ;


tak jak w tytule chcialbym obliczyc jaki wpis posiadal najwiecej glosow na tak czyli z kolumny (glosy1)
kolumna laczaca tabele to id przy wpisie i to odpowiada wpis w wpis_oceny

Jak moge tego dokonac i z co wykorzystac ? prosze o pomoc.

z tego co wiem to nalezy zsumowac pole glosy oraz glosy1 podzielic przez siebie i pomnozyc przez 100 potem wyswietlic maxymalny wynik i juz smile.gif a w praktyce jestem zielony i nie potrafie sad.gif
Mchl
Kod
SELECT wpis, (SUM(glosy1)/SUM(glosy)) * 100  AS procent FROM wpis_oceny AS wo ON w.id = wo.wpis GROUP BY wpis ORDER BY procent DESC
wasik89
Dziekuje za szybka odpowiedz smile.gif jednak mysql wyrzucil syntax error sad.gif

"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON w.id = wo.wpis GROUP BY wpis ORDER BY procent DESC"
Mchl
Bo najpierw zrobiłem to na złączeniu, ale nie wydaje się żeby było CI potrzebne (przynajmneij wedle tego co napisałeś).

Kod
SELECT wpis, (SUM(glosy1)/SUM(glosy)) * 100  AS procent FROM wpis_oceny GROUP BY wpis ORDER BY procent DESC
wasik89
Wszystko teraz jest ok nie ma bledu smile.gif jednak faktycznie chcialbym te tabele zlaczyc gdyz chcialbym tez wyswietlic chocby jaki tytul i login byl przy tym wpisie smile.gif tyle ze powyzsze przyklad ze zlaczeniem w zapytaniu sql w phpmyadminie nie przechodzi smile.gif
Mchl
Bo to była pomyłka moja. Zapomniałem wykasować co trzeba.

Kod
SELECT w.id, w.naglowek, w.login, (SUM(glosy1)/SUM(glosy)) * 100  AS procent FROM wpis AS w INNER JOIN wpis_oceny AS wo ON w.id = wo.wpis GROUP BY w.id ORDER BY procent DESC
wasik89
Dziekuje smile.gif
Wlasnie o to chodzilo.
Nie znam bardzo zasad tutaj ale domyslam sie ze za pomoc klika sie "pomogl" wiec tak klikam smile.gif
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.