Mam napisany taki kod, który mi działa i wyświetla wyniki. Chciałbym prosić o pomoc, czy można to zrobić jednym zapytaniem, tak by w wyniku uzyskać tylko liczbę wierszy spełniających warunki?
<? //date mam w takiej postaci w bazie ( nie ja bazę tworzyłem) $czas10='20160101'; $czas20='20161231'; $pytanie10d="SELECT distinct DAPLNR, DADWNR, DADWNZ, DADWIM FROM DAWCY INNER JOIN ODDANIA on DADWNR=ODDWNR AND DAPLNR=ODPLNR WHERE ODDNDT Between '".$czas10."' And '".$czas20."' AND ODDNKD in('EK', 'EP', 'EA', 'E5','ER') AND ODWSDP not in ('P','p') order by DADWNZ ASC"; //Nie sugerujcie się nazwami kolumn w tabeli, to bez znaczenia ?> <table border="1"> <tr bgcolor="#24FF19"><td width="3%" align="center"><b>Lp.</b></td> <td align="center"><b>Nr plac.</b></td> <td align="center"><b>Nazwa</b></td> <td align="center"><b>Plac</b></td> <td align="center"><b>Nr don.</b></td> <td align="center"><b>Pojemnik</b></td> <td align="center"><b>Zwrot</b></td> <td align="center"><b>Zwrot</b></td> </tr> <?php $x=0; while(odbc_fetch_row($result13)) { $a113 = odbc_result($result13, 1); $a213 = odbc_result($result13, 2); $a313 = odbc_result($result13, 3); $a413 = odbc_result($result13, 4); //Zapytanie poniżej ma w powiązaniu z pierwszym zapytaniem wyświetlić dla danej osoby najwcześniejszy (Min) zapis w danym okresie czasowym czyli np. 20160218 //a także wybrać najnowszy wpis, który jest mniejszy od $czas10 czyli będzie to np. 20150816 //Z poniższego zapytania obie te wartości otrzymuję prawidłowo //Chciałbym by w zapytaniu była możliwość od razu wyliczenia różnicy między DDON1 a DDON2 wiekszej niż np. 20000. Obecnie robię to przez odejmowanie w php $roznica= $a113a-$a114a; i zapisaniem warunku w if $pytanie10d1="SELECT (SELECT MIN(ODDNDT) as minddon FROM ODDANIA WHERE ODDNDT Between '".$czas10."' And '".$czas20."' AND ODDWNR='".$a213."' AND odPLNR='".$a113."' AND ODDNKD in('EK', 'EP', 'EA', 'E5','ER')) AS DDON1, (SELECT MAX(ODDNDT) as maxddon FROM ODDANIA WHERE ODDNDT<'".$czas10."' AND OdDWNR='".$a213."' AND ODPLNR='".$a113."' AND ODDNKD in('EK', 'EP', 'EA', 'E5','ER')) AS DDON2 from ODDANIA where OdDWNR='".$a213."' AND odPLNR='".$a113."' "; odbc_fetch_row($result13a); $a113a = odbc_result($result13a, 1); $a114a = odbc_result($result13a, 2); if ($a114a ==0){ $a114a=$a113a; } else{ $a114a=$a114a; } $x++; $roznica= $a113a-$a114a; if ($roznica>=20000){ <td align="center">'.$a113.'</td> <td align="center">'.$a213.'</td> <td align="center">'.$a313.'</td> <td align="center">'.$a413.'</td> <td align="center">'.$a114a.'</td> <td align="center">'.$a113a.'</td> <td align="center">'.$roznica.'</td></tr>'; } else { } } ?> </table>
Gdyby sie dało uzyskać cały zapis w pierwszym zapytaniu, to chciałbym go otrzymać w takiej formie:
$ilosc10d = odbc_num_rows($result10d);