Mam zapytanie do bazy ogólnie nieźle działa tylko jest pewien problem,
mianowicie zapytanie działało dobrze jeśli była w nim tylko pierwsza suma i
nie pobierałem danych z tabeli uczen po dodaniu drugiej sumy i dodaniu uczen
pierwszą suma jest za duża jakby pomnożona przez 101 natomiast druga jest dobra.
Mógłbym pierwszą sumę dzielić przez 101 ale jak zwiększę ilość rekordów w tabeli uczen
to będę musiał dzielić przez większą liczbę.
Może macie jakiś pomysł na modyfikację zapytania bez rozbijania zapytania na dwa
aby to poprawić?


  1. SELECT d.faq_cat_name AS K,
  2. SUM(IF((d.faq_cat_name = m.news_d1) OR
  3. (d.faq_cat_name = m.news_d2),1,0)) AS M,
  4.  
  5. SUM(IF(d.faq_cat_name = uc.uczen_1 AND m.news_subject = uc.uczen_d AND
  6. (m.news_d1 = uc.uczen_1 OR m.news_d2 = uc.uczen_1),1,0)) AS BZ,
  7.  
  8. FROM pol_faq_cats d, pol_new m, uczen uc
  9. WHERE d.faq_cat_sezon = 2009 AND m.news_sezon = 2009 AND m.news_w<>9 AND uc.uczen_sezon = 2009
  10. GROUP BY d.faq_cat_name
  11. ORDER BY BZ DESC, M ASC");