SELECT id + 1 available_id FROM customers t WHERE NOT EXISTS (SELECT * FROM customers WHERE id = t.id + 1 ) ORDER BY id
https://stackoverflow.com/questions/1312101/how-do-i-find-a-gap-in-running-counter-with-sql
SELECT id + 1 available_id FROM customers t WHERE NOT EXISTS (SELECT * FROM customers WHERE id = t.id + 1 ) ORDER BY id
https://stackoverflow.com/questions/1312101/how-do-i-find-a-gap-in-running-counter-with-sql
Grafana dashboard dla mysql: https://grafana.com/grafana/dashboards/7991
Kolektor danych: https://github.com/meob/my2Collector
Planujesz wprowadzić obsługę indywidualnych numerów rachunków, a w wyniku zaszłych czynności numeracja nie jest spójna. Można “zresetować” numerację tak, aby identyfikatory klientów zaczynały się od 1 i nie było żadnych luk w numeracji.
Poniżej wersja zapytania dla bazy MySQL, która reorganizuje numerację ID.
SET @var:=0; UPDATE `customers` SET `id`=(@var:=@var+1); ALTER TABLE `customers` AUTO_INCREMENT=1;
UWAGA! Używasz tego na własną odpowiedzialność!
/* Wynik zapytania: - pokaż wszystkie faktury klienta (customerid), na których jest internet (23% VAT) oraz telewizja (8% VAT) Legenda: - taxid = 2 (internet 23% VAT) - taxid = 3 (iptv 8% VAT) - customerid = 43 (wynik dla konkretnego klienta) - YEAR(FROM_UNIXTIME(TIME)) = 2018 (przeszukiwany rok) */ SELECT DISTINCT docid, SUM(CASE WHEN taxid = 2 THEN 1 ELSE 0 END) AS NET, SUM(CASE WHEN taxid = 3 THEN 1 ELSE 0 END) AS TV FROM cash WHERE YEAR(FROM_UNIXTIME(TIME))=2018 AND customerid=43 AND docid IN (SELECT docid FROM cash WHERE value < 0 AND docid IS NOT NULL GROUP BY docid HAVING SUM(CASE WHEN taxid = 2 THEN 1 ELSE 0 END) >= 1 AND SUM(CASE WHEN taxid = 3 THEN 1 ELSE 0 END) >= 1) GROUP BY docid