Zum Inhalt springen

wilmau

Mitglieder
  • Gesamte Inhalte

    31
  • Benutzer seit

  • Letzter Besuch

Beiträge von wilmau

  1. Hallo,

    ist es realistisch das dass ausführen des Folgenden SQL-Commandos

    ca 1,5 sec dauern könnte?

    Mein Chef sagt es müsste schneller gehen, habe aber keine Anung wie ich

    das anstellen soll!

    !Danke für jeden Tipp(Hilfe)!

    Das Sql_Commando wird von einem Client zu einem Server auf der die Datenbank ist geschikt.

    Datenbank: MySql4.1

    im Commando sind 3 Sub-Select's

    und 2 Sub-Sub-Select's

    Die Datenmenge der einzelnen Tabellen variieren zurzeit um die 800

    :mod:

    SELECT

    kalkulation_controlling.auftraege.auftragsnr,

    kalkulation_controlling.auftraege.angebotsnr,

    kalkulation_controlling.auftraege.auftragstyp,

    kalkulation_controlling.auftraege.fk_anlagennr,

    kalkulation_controlling.auftraege.auftragsstatus,

    kalkulation_controlling.auftraege.kunde,

    kalkulation_controlling.auftraege.bestellnrkunde,

    kalkulation_controlling.auftraege.bestelldatum,

    kalkulation_controlling.auftraege.bezeichnung,

    kalkulation_controlling.auftraege.produktbereich,

    kalkulation_controlling.auftraege.projektleiterintern,

    kalkulation_controlling.auftraege.verkaeufer,

    kalkulation_controlling.auftraege.techasp,

    kalkulation_controlling.auftraege.kaufmasp,

    kalkulation_controlling.auftraege.waehrung,

    kalkulation_controlling.auftraege.eingabedatum,

    kalkulation_controlling.auftraege.eingegebenvon,

    sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_gesamt,

    TempTable.Istkosten_gesamt,

    sum(auftragspositionen.vkpreis) as Auftragswert,

    LeistungsTable.Istkosten_Leistung,

    LeistungsTable.Sollkosten_Leistung,

    MaterialTable.Istkosten_Material,

    MaterialTable.Sollkosten_Material

    FROM auftragspositionen

    RIGHT JOIN auftraege ON auftraege.auftragsnr = auftragspositionen.fk_auftragsnr

    LEFT JOIN

    (SELECT kalkulation_controlling.auftraege.auftragsnr, sum(kalkulation_controlling.dienstleistungserfassung.menge*kalkulation_controlling.dienstleistungserfassung.kostenproeinheit) as Istkosten_gesamt

    FROM kalkulation_controlling.auftraege LEFT JOIN kalkulation_controlling.dienstleistungserfassung

    ON kalkulation_controlling.auftraege.auftragsnr = kalkulation_controlling.dienstleistungserfassung.fk_auftragsnr

    GROUP BY kalkulation_controlling.auftraege.auftragsnr) As TempTable ON TempTable.auftragsnr = kalkulation_controlling.auftraege.auftragsnr

    LEFT JOIN

    (SELECT auftraege.auftragsnr, Dienstleistungen.Sollkosten_Leistung As Sollkosten_Leistung,

    sum(dienstleistungserfassung.menge*dienstleistungserfassung.kostenproeinheit) as Istkosten_Leistung

    FROM auftraege LEFT JOIN dienstleistungserfassung ON auftraege.auftragsnr = dienstleistungserfassung.fk_auftragsnr

    LEFT JOIN

    (SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten,

    sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Leistung

    FROM auftragspositionen

    WHERE auftragspositionen.leistungskategorie = "D"

    GROUP BY fk_auftragsnr) As Dienstleistungen

    ON auftraege.auftragsnr = Dienstleistungen.fk_auftragsnr

    GROUP BY auftraege.auftragsnr) As LeistungsTable

    ON LeistungsTable.auftragsnr = auftraege.auftragsnr

    LEFT JOIN

    (SELECT auftraege.auftragsnr, Materialkosten.Sollkosten_Material As Sollkosten_Material,

    sum(materialkostenerfassung.menge*materialkostenerfassung.ekpreis) as Istkosten_Material

    FROM auftraege LEFT JOIN materialkostenerfassung ON auftraege.auftragsnr = materialkostenerfassung.fk_auftragsnr

    LEFT JOIN

    (SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten,

    sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Material

    FROM auftragspositionen

    WHERE auftragspositionen.leistungskategorie = "M"

    GROUP BY fk_auftragsnr) As Materialkosten

    ON auftraege.auftragsnr = Materialkosten.fk_auftragsnr

    GROUP BY auftraege.auftragsnr) As MaterialTable

    ON MaterialTable.auftragsnr = auftraege.auftragsnr

    WHERE auftraege.bestelldatum LIKE "%2005"

    AND auftraege.auftragsstatus LIKE "%"

    GROUP BY auftraege.auftragsnr

  2. Ende der Ausbildung, nun steht die Projektarbeit an

    bitte höflichst um Verbesserungsvorschläge für meinen Projektantrag

    Fachinformatiker Schwerpunkt Anwendungsentwicklung

    ------------------------------

    Projektbezeichnung (Auftrag/Teilauftrag):

    Sql-Filter-Generator

    ------------------------------

    Kurze Projektbeschreibung:

    Es soll eine Klasse entwickelt werden, die es dem Programmierer ermöglicht, schnell einen Filter Mechanismus im Programm zu implementieren, der auf effizienter weise Daten gefiltert zu Verfügung stellt.

    Diese Klasse kann im Programm mit eingebunden werden und anhand von Schnittstellen können Werte gesetzt werden.

    Die Klasse stellt Funktionen zum setzen der Attribute bereit.

    Der Vorteil des Sql-Filter-Generators gegenüber dem eigenhändigem erstellen von Filterfunktionen ist,

    das

    • diese Klasse an mehrere Komponenten gebunden werden kann, was dazu führt, dass überall der gleiche Filterstatus ist

    • anhand des Sql-Generators der Sql-String automatisch erstellt wird

    • durch effiziente Auswahl der Operatoren im Sql-String die Geschwindigkeit optimiert wird

    --------------------------------------------

    Projektphasen mit Zeitplanung in Std.:

    Bezeichnung Std.

    Analysephase 12

    • Analyse des Ist-Zustandes

    • Definition des Soll-Zustandes

    • Erstellung des Fachkonzeptes

    Designphase

    • Beschreibung der Klasse und ihrer Anwendung

    mittels UML-Diagrammen 10

    • Erstellung des DV-Konzeptes 8

    Realisierung

    • Implementierung der Bibliothek 32

    • Implementierung in einer prototypischen Anwendung

    4

    Dokumentation

    • Programmierer-Dokumentation der Klasse 4

    Gesamtstundenzahl für die Projektarbeit: 70

    Die Projektarbeit beinhaltet folgende Dokumente:

    Nicht selbständig erstellte Dokumente sind mit "(x)" zu kennzeichnen !

    Fachkonzept (Ergebnis der Analysephase)

    DV-Konzept (Ergebnis der Designphase)

    Programmierer-Dokumentation als HTML-Hilfe Datei (in englisch!)

    Projektquellcode

    Präsentation als PowerPoint Datei

    Danke :nett:

  3. sql - brauche dringend hilfe :bimei

    dieser Befehl soll felder berechnen und diese

    mit der Tabelle auftraege anzeigen

    die berechnung für Sollkosten ist aber falsch, da er drei tabellen zusammenschmeißt und dann erst die einzelnen Felder berechnet und weil

    in der tabelle dienstleistungserfassung mehrere auftragsnummern sind,

    kommt eine auftragsnummer in der zusammengeschmißenen Tabelle

    auch mehrmahls.

    Dadurch werden einige Felder mehrmals summiert, was zu einem falschem

    Ergebniss führt!

    hier mein Sql-Befehl

    SELECT

    auftraege.auftragsnr,

    sum(auftragspositionen.vkpreis) as Auftragswert,

    sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten,

    sum(dienstleistungserfassung.menge*dienstleistungserfassung.kostenproeinheit) as Istkosten

    FROM auftraege

    LEFT JOIN auftragspositionen ON (auftraege.auftragsnr = auftragspositionen.fk_auftragsnr)

    LEFT JOIN dienstleistungserfassung ON (auftragspositionen.fk_auftragsnr = dienstleistungserfassung.fk_auftragsnr)

    WHERE auftraege.auftragsnr = 20040022

    GROUP BY auftragspositionen.fk_auftragsnr

    Danke! :marine

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...