Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Hilfe bei sql-Befehl

    Thomas M.

    • Fördermitglied
    • Beiträge: 192
    Hilfe bei sql-Befehl
    am: 21. Januar 2021, 17:31:11
    Grüß euch,

    unser Steuerberater hätte gerne monatlich eine csv-Datei mit folgenden Merkmalen:
    Bestellnummer, Datum, Name, Bruttobetrag, Währung, Umrechnungsfaktor und Steuer.
    So weit so gut, mit folgenden sql-Befehl geht das schon fast gut:
    Code: SQL  [Auswählen]
    SELECT orders.orders_id, orders.date_purchased, orders.customers_name, orders_total.value, orders.currency , orders.currency_value , orders_products.products_tax
    FROM orders
    JOIN orders_total ON orders.orders_id = orders_total.orders_id
    JOIN orders_products ON orders.orders_id = orders_products.orders_id
    WHERE orders.date_purchased LIKE "2020-01%%"
    AND orders_total.class = "ot_total"
    ORDER BY orders.orders_id

    ABER, dadurch das ich mir die Steuer aus der orders_products hole, habe ich für jede Position der Bestellung eine Zeile in der Ausgabe (Kunde hat drei Artikel bestellt -> drei gleiche Zeilen in der Ausgabe).
    Habt ihr eine Idee, wie ich nur eine Zeile bekomme?

    Danke und Grüße aus Wien,
    Thomas

    Linkback: https://www.modified-shop.org/forum/index.php?topic=41618.0
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Hilfe bei sql-Befehl
    Antwort #1 am: 21. Januar 2021, 18:05:58
    Hallo Thomas,

    hast du schon mit SELECT DISTINCT anstatt SELECT getestet?

    Gruss
    Hanspeter

    Thomas M.

    • Fördermitglied
    • Beiträge: 192
    Re: Hilfe bei sql-Befehl
    Antwort #2 am: 21. Januar 2021, 18:08:20
    Danke Hanspeter, so funktioniert es!

    Grüße aus Wien,
    Thomas

    Thomas M.

    • Fördermitglied
    • Beiträge: 192
    Re: Hilfe bei sql-Befehl
    Antwort #3 am: 07. April 2021, 16:56:30
    Grüß euch,

    es wird komplexer..... , der sql Befehl sieht zur Zeit so aus:
    Code: SQL  [Auswählen]
    SELECT DISTINCT orders.orders_id, orders.date_purchased, orders.customers_lastname, orders_total.value, orders.currency , orders.currency_value , orders_products.products_tax, orders.customers_vat_id, orders.customers_country, orders.payment_class
    FROM orders
    JOIN orders_total ON orders.orders_id = orders_total.orders_id
    JOIN orders_products ON orders.orders_id = orders_products.orders_id
    WHERE orders.date_purchased LIKE "2021-04%%"
    AND orders_total.class = "ot_total"
    AND orders_total.value > 0 /*Ausgabe ohne abgbrochene KK-Bestellungen*/
    ORDER BY orders.customers_lastname

    funktioniert auch fast perfekt, jedoch habe ich das Problem, dass bei uns "Hilfsartikel" existieren bei denen kein MwSt-Satz definiert ist/war. Habe ich eine Bestellung in der bei einem Artikel MwSt verrechnet wird und bei einem nicht, habe ich dann zwei Zeilen und unser Steuerberater ist verwirrt. Da ich fürchten muss, dass das immer wieder vorkommen wird, meine Frage:
    Gibt es eine Möglichkeit das mit sql abzufangen (Tabelle 'orders_products' Spalte 'products_tax'),also das nur die Zeile mit MwSt-Wert angezeigt wird?
    Code: SQL  [Auswählen]
    AND orders_products.products_tax < 0
    kann ich nicht verwenden, da wir auch ins Ausland versenden.

    Danke und Grüße aus Wien,
    Thomas

    Q

    • Fördermitglied
    • Beiträge: 1.502
    Re: Hilfe bei sql-Befehl
    Antwort #4 am: 07. April 2021, 17:47:56
    Wenn Du nur 0% oder 19% hast, könnte vielleicht ein
    Code: SQL  [Auswählen]
    GROUP BY orders.orders_id
    vor dem ORDER BY helfen? Ohne live Daten gerade schwer zu testen.

    Thomas M.

    • Fördermitglied
    • Beiträge: 192
    Re: Hilfe bei sql-Befehl
    Antwort #5 am: 07. April 2021, 18:04:16
    Danke oneQ, funktioniert!
    Es werden auch (bei den beiden Tests) nur die Zeilen mit MwSt-Werten angezeigt (verstehen tue ich das aber nicht, das wird doch in dem Befehl nicht berücksichtigt?)

    Grüße aus Wien,
    Thomas

    web4design

    • Experte
    • Beiträge: 1.122
    Re: Hilfe bei sql-Befehl
    Antwort #6 am: 07. April 2021, 18:22:24
    Prüfe das bitte genauer, es könnte zu unerwünschten Ergebnissen kommen.

    Teste es mal bei einer Bestellung, bei der der erste Artikel 0% und der zweite 19% hat.
    Die Bestellung müsste dann mit 0% drinstehen, statt 19%.

    *Nachtrag*
    Wenn du nur 19% und 0% hast, könntest du es so machen:

    Code: SQL  [Auswählen]
    SELECT DISTINCT orders.orders_id, orders.date_purchased, orders.customers_lastname, orders_total.value, orders.currency , orders.currency_value , MAX(orders_products.products_tax) AS products_tax, orders.customers_vat_id, orders.customers_country, orders.payment_class
    FROM orders
    JOIN orders_total ON orders.orders_id = orders_total.orders_id
    JOIN orders_products ON orders.orders_id = orders_products.orders_id
    WHERE orders.date_purchased LIKE "2021-04%%"
    AND orders_total.class = "ot_total"
    AND orders_total.value > 0 /*Ausgabe ohne abgbrochene KK-Bestellungen*/
    GROUP BY orders.orders_id
    ORDER BY orders.customers_lastname

    Der nimmt dann immer den höchsten Tax-Wert.

    Thomas M.

    • Fördermitglied
    • Beiträge: 192
    Re: Hilfe bei sql-Befehl
    Antwort #7 am: 07. April 2021, 19:12:05
    Danke web4design!

    (ich hoffe, dass nicht Bestellungen mit 16% und 19% MwSt exestieren...) sonst haben wir keine Steuersätze, nur den Standardsatz!

    Grüße aus Wien,
    Thomas
    7 Antworten
    644 Aufrufe
    19. Juli 2023, 08:13:18 von Thomas M.
    10 Antworten
    5010 Aufrufe
    05. Juni 2015, 20:29:14 von Nils
    2 Antworten
    832 Aufrufe
    08. November 2023, 08:30:59 von Andreas Kroll
    4 Antworten
    3033 Aufrufe
    15. Januar 2013, 16:25:04 von Frank_H
               
    anything