mam problem z przeliczeniem duzej ilosci wierszy w bazie danych a dokladniej w tabeli : DokFin mam 50tys wierszy, Historiafin mam 60tys wierszy, Towary okolo 6 tys wierszy.
potrzebuje program który pobierze mi w zaleznosci od dat ID dokumentu finansowego z DokFin, pozniej wyszuka to ID w tabeli HistoriaFin, następnie pobierze z HistoriaFin IDtowaru,cene zakupu i ilosc( cena i ilosc pomnoży i zapisze do zmiennej) a Id towaru wyszuka w tabeli Towary i pobierz idGrupy do której nalezy towar.
Napisałem cos takiego :
$query = "select Id from DokFin where (DokFin.DataSprzedazy between '2014-06-01' and '2014-06-02') "; $tempiddok[]=$rekord['Id']; //pobieram Id dokumentu sprzedazy spelniajace zakres dat } foreach ($tempiddok as $key => $val) { $query2 = "select IdTowaru, Ilosc, ce_zn from HistoriaFin where HistoriaFin.IdDokFin like '$val' "; //pobieram id towaru spelniajacego zakres dat $tempidtowaru[]=$rekord2['IdTowaru']; // Sprawdzam do jakiej grupy nalezy towar/// //licze wartosc danego dokumentu magazynowego $wartosczakupu=$rekord2['Ilosc']*$rekord2['ce_zn']; $wartoscgrupy[$tempidgrupy]=$wartoscgrupy[$tempidgrupy]+$wartosczakupu; }
Problem w tym gdy daty są np odlegle o 3 miesiace to program wykonuje to dłuzej niz 8000sekund.. Ktoś pomoże jak to rozwiazac?