Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mysql [2025/06/25 16:19] – [PHP: Einfach dt. Datum in SQL-Format umwandeln] geraldmysql [2026/10/09 15:49] (aktuell) – [Schauen, ob es Bestellungen gibt, deren Summe der Einzelposten nicht mit der Gesamtstumme übereinstimmt] gerald
Zeile 1: Zeile 1:
 ====== mySQL ====== ====== mySQL ======
 +
 +MariaDB
  
 [[mysql:dump|DB-Dump und Import]] [[mysql:dump|DB-Dump und Import]]
Zeile 394: Zeile 396:
  
  
-==== Alle Bestellnummern der Fotoaktion eines Auftrags (z.B. für Excel) ==== +==== Alle Bestellnummern / Nachbestellnummern der Fotoaktion eines Auftrags (z.B. für Excel) ====
  
 +Alle NB-Nummern nb-number, nbnumber
 <code> <code>
 SELECT class, name, orderinfo_key FROM `qf_classlist` WHERE `jobnumber` = 2871 AND `class` != 'Absent' AND `orderinfo_key` != '' ORDER BY class SELECT class, name, orderinfo_key FROM `qf_classlist` WHERE `jobnumber` = 2871 AND `class` != 'Absent' AND `orderinfo_key` != '' ORDER BY class
Zeile 492: Zeile 494:
 </code> </code>
  
-Echtes Löschen:+Echtes Löschen: (ACHTUNG! Löscht auch Bestellungen, bei denen nur ein einziger Item-Eintrag mit 'I: ' beginnt (was ja nicht vorkommen sollte))
  
 <code> <code>
 START TRANSACTION; START TRANSACTION;
  
--- 1. Lösche alle vault_order_items mit dir LIKE 'I:%' +-- 1. Lösche alle vault_order, deren *alle* Items mit 'I:' beginnen
-DELETE FROM vault_order_items +
-WHERE dir LIKE 'I:%'; +
- +
--- 2. Lösche nur solche vault_order, deren order_id ausschließlich in den gelöschten Items vorkam+
 DELETE FROM vault_order DELETE FROM vault_order
 WHERE id IN ( WHERE id IN (
-    SELECT id FROM ( +    SELECT order_id 
-        SELECT o.id +    FROM vault_order_items 
-        FROM vault_order o +    GROUP BY order_id 
-        LEFT JOIN vault_order_items i ON o.id = i.order_id +    HAVING SUM(CASE WHEN dir NOT LIKE 'I:%' THEN 1 ELSE 0 END) = 0
-        WHERE i.order_id IS NULL +
-    ) AS sub+
 ); );
 +
 +-- 2. Lösche alle vault_order_items mit dir LIKE 'I:%'
 +DELETE FROM vault_order_items
 +WHERE dir LIKE 'I:%';
  
 COMMIT; COMMIT;
  
 </code> </code>
 +
 +==== Schauen, ob es Bestellungen gibt, deren Summe der Einzelposten nicht mit der Gesamtstumme übereinstimmt ====
 +
 +
 +<code>
 +SELECT
 +    o.id,
 +    o.order_sum,
 +    SUM(i.quantity * i.cost) AS total_item_cost,
 +    SUM(i.cost),
 +    o.order_fee,
 +    (o.order_sum - o.order_fee)
 +FROM vault_order_items AS i
 +JOIN vault_order AS o ON o.id = i.order_id
 +WHERE
 + o.status > 0
 +GROUP BY
 +    o.id,
 +    o.order_sum,
 +    o.order_fee
 +HAVING
 +    SUM(i.cost) > (o.order_sum - o.order_fee);
 +</code>
 +
 +
 +
 +
 +
  
  
  
 
Nach oben
mysql.1750868378.txt.gz · Zuletzt geändert: von gerald
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp