Mysql
 sql >> Baza danych >  >> RDS >> Mysql

wielowymiarowe zapytanie tablicowe mysql

W gruncie rzeczy wydaje się to być problemem z bazą danych.

Ustaw kolumnę procentową na NOT NULL i ustaw 0 jako DOMYŚLNE.

ALTER TABLE promotions CHANGE COLUMN percent [maintain-its-type] NOT NULL DEFAULT '0';

Następnie jest to kwestia (jeśli rozumiem problem) wyrywania wartości procentowych MAX() i MIN() dla każdej daty.

SELECT s.date, s.rate, MAX(p.percent) AS maxperc, MIN(p.percent) AS minperc
    FROM stock s
    LEFT JOIN promotions p ON s.date = p.date
    WHERE s.date BETWEEN '2017-01-29' AND '2017-01-31'
    GROUP BY s.date,s.rate;

...Nie testowałem tego, więc może wymagać trochę majstrowania.

Następnie, przechodząc przez zestaw wyników w pętli, możesz zadeklarować dwie oddzielne podtablice i zbudować pełną tablicę.

$array=[];
$i=0;
while($row=mysqli_fetch_assoc($result)){
    $array[0][$i]["date"]=$row["date"];
    $array[0][$i]["rate"]=$row["rate"];
    $array[0][$i]["perc"]=$row["minperc"];
    $array[1][$i]["date"]=$row["date"];
    $array[1][$i]["rate"]=$row["rate"];
    $array[1][$i]["perc"]=$row["maxperc"];
    ++$i;
}

Do tego momentu poczyniłem zbyt wiele założeń dotyczących twojego celu/użytkowania. Zasadniczo ustaw zero jako domyślną wartość procentową, zapytaj o najwyższy i najniższy procent dla każdej pary data-stawka (jeśli zero, wtedy zero będzie wyświetlane jako najwyższy i najniższy procent wartość). Rób, co chcesz z zestawem wyników.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje alternatywa ANSI SQL dla słowa kluczowego MYSQL LIMIT?

  2. Jak obliczyć procent?

  3. Narzędzie do importowania plików CSV do bazy danych MySQL?

  4. Jak zaimportować plik sql do bazy danych ignorując X wierszy w pliku?

  5. Połącz bazę danych MySQL z Androida