Mam takie oto zapytanie, które działa.

  1. $pytanie20="SELECT CONCAT(ODPLNR, ODDWNR) as numer, ODDNR1, ODDNKD, ODDNNR, ODDNDT, DADWNZ, DADWIM, DADWPS, ODWSDP FROM ODDANIA
  2. INNER JOIN DAWCY on ODDWNR=DADWNR AND ODPLNR =DAPLNR
  3. WHERE
  4. ODDNDT Between '".$czas1."' And '".$czas2."' AND ODDNKD='E5' AND ODDNI2>'0' OR
  5. ODDNDT Between '".$czas1."' And '".$czas2."' AND ODDNKD='EA' AND ODDNI2>'0' OR
  6. ODDNDT Between '".$czas1."' And '".$czas2."' AND ODDNKD='EK' AND ODDNI2>'0' OR
  7. ODDNDT Between '".$czas1."' And '".$czas2."' AND ODDNKD='EP' AND ODDNI2>'0' ";
  8.  
  9. $result20 = odbc_exec($connect, $pytanie20) or die( odbc_error());
  10. $ilosc20 = odbc_num_rows($result20);
  11. $element20 = array();
  12.  
  13.  
  14. while($set20=odbc_fetch_array($result20)){
  15. $ODDWNR20 = $set20['NUMER'] ;
  16.  
  17. if($set20['ODWSDP']=='P'){
  18. $element20[$ODDWNR20] = 'P';}
  19.  
  20. elseif(($set20['ODWSDP']=='R' or $set20['ODWSDP']=='S' or $set20['ODWSDP']=='W') && (!isset($element20[$ODDWNR20]) || $element20[$ODDWNR20]!='P')){
  21. $element20[$ODDWNR20] = 'S'; }
  22.  
  23.  
  24.  
  25.  
  26. $tab_P20=array();
  27. $tab_S20=array();
  28.  
  29.  
  30.  
  31. foreach ($element20 as $el20 => $atr20){
  32.  
  33. if ($atr20=='P') {
  34. $tab_P20[] =$el20;}
  35.  
  36.  
  37. elseif ($atr20=='S') {
  38.  
  39. $tab_S20[] =$el20;}
  40.  
  41. }
  42. }
  43. $daw_P20=count($tab_P20);
  44. $daw_S20=count($tab_S20);
  45.  
  46.  
  47. echo $daw_P20;
  48. echo '/';
  49. echo $daw_S20;
  50. echo '/';

Otrzymuję przy wyświetleniu $daw_P20 i $ daw_S20 prawidłowe wartości. Otrzymane wartości musiałbym następnie podzielić wg ODPLNR ( jest tam 4 grupy : 14000, 14001, 14002, 14030 ). Tak otrzymane wartości w poszczególnych grupach, musiałbym podzielić jeszcze wg ODDNKD ( EK, EP, E5, EA).

Czyli ma to wyglądć mniej więcej tak. Na podstawie zapytania nalezy podzielić wyniki na dwie grupy wg ODWSDP, na P i na pozostałe R,S,W. Założenie jest takie, że jeśli rekord zawiera P to ma być zliczany w pierwszej kolejności do P, a jeśli nie to do pozostałych. W kolejnym kroku otrzymane wyniki wg ODWSDP, mają zostać podzielone wg ODPLNR na wspomniane 4 grupy. A nastepnie te wyniki mają zostać podzielone na ODDNKD.
Wyniki z każdego poziomu muszą być wyświetlone.

Z pierwszym poziomem jakoś sobię poradziłem, ale jak zrobić kolejne to już nie wiem. Może jest na to jakiś łatwiejszy sposób?