Subselects in massen.. Abfrage optimierbar?

T

Thimo Grauerholz

Subselects in massen.. Abfrage optimierbar? (Summe aus Summen "-" Summen aus Summen)

Hi,

ich habe ein Problem mit einer Statistik, die ich erstelle.
Ich habe Summen, die aus mehreren Posten einer Rechnung entstehen. Diese Summen möchte ich zusammenfügen und mit den Gutschriften subtrahieren lassen.

Das ganze sieht so aus:

Code:
select ((select sum(prc)
from (SELECT (sum((invoices_articles.price*invoices_articles.quantity)-((invoices_articles.price*invoices_articles.quantity)/100*invoices_articles.rabatt))) AS prc,invoices_articles.invoice_id
FROM invoices_articles
JOIN invoices ON invoices.id = invoices_articles.invoice_id
GROUP BY invoices.id) as a
join invoices on a.invoice_id=invoices.id

where left(invoices.idate,7)='".$date."')   

    -   

(select sum(prc)
from (SELECT (sum((credit_notes_articles.price*credit_notes_articles.quantity)-((credit_notes_articles.price*credit_notes_articles.quantity)/100*credit_notes_articles.rabatt))) AS prc,credit_notes_articles.cn_id
FROM credit_notes_articles
JOIN credit_notes ON credit_notes.id = credit_notes_articles.cn_id
GROUP BY credit_notes.id) as b

join credit_notes on b.cn_id=credit_notes.id

where left(credit_notes.idate,7)='".$date."'))

Wie kann ich diese Abfragen optimieren?

Vielen Dank für die Hilfe
 
Zuletzt bearbeitet von einem Moderator:
subselects kannst du im Normalfall nur durch joins lösen.

Dadurch kann es zwar kürzer werden (kann - nicht muss), aber für meinen Geschmack ist die Subselect-Sache die verständlichere.

Eigentlich müssten die Subselects auch insgesamt schneller arbeiten als die joins.
 
Hi,

mit Joins habe ich es probiert, aber kam nicht zum gleichen Ergebnis - komischerweise...

Trotzdem danke.. dann wirds wohl bei dieser Lösung bleiben müssen! :)
 
Zurück