Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odjęcie wartości ostatniego rekordu od poprzedniego w tej samej tabeli
macieju1974
post 5.12.2021, 22:53:05
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.12.2021

Ostrzeżenie: (0%)
-----


Witam wszystkich,

jak zadać pytanie sql aby wyświetlić różnicę wartości ostatniego rekordu od poprzedniego w tej samej tabeli ?
Go to the top of the page
+Quote Post
trueblue
post 6.12.2021, 08:46:56
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Posortować malejąco i pobrać dwa ostatnie:
  1. SELECT ... ORDER BY klucz DESC LIMIT 0,2


--------------------
Go to the top of the page
+Quote Post
macieju1974
post 6.12.2021, 17:27:22
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.12.2021

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź trueblue,

Bardzo wszystkich przepraszam, ale nie wyjaśniłem poprzez pośpiech mojego problemu dokładnie. Chodzi o to że mam tabelę z datami do których są przypisane jakieś wartości np jest to przepływ wodomierza.
Potrafię zapytać SQL wyświetlić wartości z zadanego zakresu dat oraz ich sumę, ale ponadto chciałbym zapytać SQL o różnicę miedzy ostatnim rekordem a pierwszym z zakresu dat.

require("connect.php");


  1. <?php
  2.  
  3. $from_date = $_GET['from_date'];
  4. $to_date = $_GET['to_date'];
  5.  
  6.  
  7. $sql_all = "SELECT * FROM Przeplywy WHERE reading_date BETWEEN '$from_date' AND '$to_date' ORDER BY reading_date ASC";
  8.  
  9. $sql_wskazanie = "SELECT SUM(wskazanie) AS sum_wskazanie FROM Przeplywy WHERE reading_date BETWEEN '$from_date' AND '$to_date'";
  10.  
  11.  
  12.  
  13. $result_all = $conn->query($sql_all);
  14.  
  15. if ($result_all->num_rows > 0)
  16. {
  17. while($row = $result_all->fetch_assoc())
  18. {
  19. ?>
  20. <tr>
  21. <td><?= $row['reading_date']; ?></td>
  22. <td><?= $row['wskazanie']; ?></td>
  23. </tr>
  24. <?php
  25. }
  26.  
  27. }
  28.  
  29.  
  30. $result_wskazanie = $conn->query($sql_wskazanie);
  31.  
  32. if ($result_wskazanie->num_rows > 0)
  33. {
  34. while($row = $result_wskazanie->fetch_assoc())
  35. {
  36.  
  37. $output_wskazanie=" "." ".$row['sum_wskazanie']." m3";
  38. }
  39.  
  40. }
  41. ?>
  42.  


https://www.macieju1974.pl/przeplyw.php?fro...date=2021-12-06
Go to the top of the page
+Quote Post
trueblue
post 6.12.2021, 21:34:20
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Dwa odrębne zapytania i w PHP różnica:
  1. SELECT wartosc FROM tabela WHERE DATA=min ORDER BY id LIMIT 0,1

  1. SELECT wartosc FROM tabela WHERE DATA=max ORDER BY id DESC LIMIT 0,1

albo:
  1. SELECT SUM(wartosc1)-SUM(wartosc2) FROM(
  2. (SELECT wartosc AS wartosc1, 0 AS wartosc2 FROM tabela WHERE DATA=min ORDER BY id LIMIT 0,1)
  3. UNION
  4. (SELECT 0, wartosc FROM tabela WHERE DATA=max ORDER BY id DESC LIMIT 0,1)
  5. ) AS tmp



--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 16:26