einer Ahnung von SQL??

Diskutiere einer Ahnung von SQL?? im Smalltalk Forum im Bereich Allgemeines; Tach auch, ich frage mal hier weil's so nahe liegt... ;-) Ich habe hier zwei SQL-Statements die ich aber irgendwie in einem brauche! select...

  1. #1 DieTerMiete, 04.03.2008
    DieTerMiete

    DieTerMiete Gartendesigner oder so...

    Dabei seit:
    08.08.2007
    Beiträge:
    2.703
    Zustimmungen:
    2
    Vorname:
    Christian
    Tach auch, ich frage mal hier weil's so nahe liegt... ;-)

    Ich habe hier zwei SQL-Statements die ich aber irgendwie in einem brauche!


    select Verldat, Maschnr, Wagnr, count(Wagpos) as SummeTeile
    from tab_Kommliste where Status = '10' and Vorbearbeitung = 0
    Group by Verldat, Maschnr, wagnr
    order by Verldat, Maschnr, Wagnr


    select Verldat, Maschnr, Wagnr2, count(Wagpos2) as SummeTeile
    from tab_Kommliste where Status = '10' and Vorbearbeitung = 1
    Group by Verldat, Maschnr, wagnr2
    order by Verldat, Maschnr, Wagnr2


    Die beiden Anweisungen Zeigen jeweils Daten aus einer Tabelle an, mit dem
    Unterschied das die Untere Daten aus zwei anderen Spalten anzeigt (rot gekennzeichnet),
    das jedoch in abhängigkeit von einer dritten spalte in der
    dann eine '1' steht anstatt einer '0'.
    Ich erwarte jetzt nicht unbedingt die Komplette Lösung aber vielleicht
    einfach nen Tipp wie ich die beiden Anweisungen am besten
    zusammenfassen kann, irgendwie mit IF-else oder auch case?

    Hab mir nämlich schon nen Wolf gegoogelt!

    Gruß...

    P.S. es sollte mit einem "MS SQL-Server 2005" kompatibel sein
     
  2. #2 rottifan, 04.03.2008
    rottifan

    rottifan Guest

    Hallo, da sich hier noch keiner gemeldet hat, werde ich mal kurz etwas ablassen. Als erstes kann ich Dir sagen, es gibt nichts was nicht geht. Leider sind wir im Stress und ich habe echt viel um die Ohren. Aber wenn die Sache 2-3 Tage Zeit hat, setze ich mich gern mal ran, sehe es mir an und melde mich bei Dir. .... Ich habe gerade noch mal drüber gesehen, es ist nicht so viel, ich könnte mich heute Abend kurz dransetzen wenn das o.k. ist....
     
  3. #3 DieTerMiete, 04.03.2008
    DieTerMiete

    DieTerMiete Gartendesigner oder so...

    Dabei seit:
    08.08.2007
    Beiträge:
    2.703
    Zustimmungen:
    2
    Vorname:
    Christian
    Na das ist doch schon mal ein Angebot! Danke!!!

    Ich denke auch, es gibt nichts was es nicht gibt! gerade bei SQL nur leider vergesse ich das immer wieder bzw. verrenne mich in die falsche Richtung.

    Wenn du mal Zeit hast schau dir das doch mal an, ich fummel mal noch ein wenig weiter... wenn ich was hab geb ich bescheid.

    Gruß...
     
  4. #4 rottifan, 04.03.2008
    rottifan

    rottifan Guest

    Im Grunde ist das der Ansatz.... wie gesagt, ich habe heute Abend mehr Zeit. In welcher Sprache ist denn das Script wo die Abfrage vorkommt ?


    if ("dritte Spalte" == 0) {
    select Verldat, Maschnr, Wagnr, count(Wagpos) as SummeTeile
    from tab_Kommliste where Status = '10' and Vorbearbeitung = 0
    Group by Verldat, Maschnr, wagnr
    order by Verldat, Maschnr, Wagnr
    }
    elsif ("dritte Spalte" == 1) {
    select Verldat, Maschnr, Wagnr2, count(Wagpos2) as SummeTeile
    from tab_Kommliste where Status = '10' and Vorbearbeitung = 1
    Group by Verldat, Maschnr, wagnr2
    order by Verldat, Maschnr, Wagnr2
    }


    Würde helfen wenn Du noch ein paar Infos geben würdest was Du erreichen willst. Sollen immer alle angezeigt werden oder nur die einen wenn Bedingung erfüllt ist und die anderen wenn Bedingung nicht erfüllt ist.
     
  5. #5 DieTerMiete, 04.03.2008
    DieTerMiete

    DieTerMiete Gartendesigner oder so...

    Dabei seit:
    08.08.2007
    Beiträge:
    2.703
    Zustimmungen:
    2
    Vorname:
    Christian
    Wie meinst du in welcher sprache?

    Also mein Programm welches dazu gehört schreibe ich in Delphi. Mit dem
    SQL-Server bin ich über eine ADO verbunden und rufe die Daten mit einer
    Query ab um sie dann in einem Grid dar zu stellen.

    reicht das als info?

    Also ich bräuchte jetzt eine Query, wo ich das, was ich jetzt in zwei
    Statements habe in einem hab. Die Sache ist durch die group by-klausel
    nicht unbedingt einfacher.


    Um das ganze einfach zu gestalten, Ich selectiere Spalte x,y,z aus einer
    Tabelle wo "vorbearbeitung" = 1 ist.
    Wenn vorarbeitung = 0 ist möchte ich die Daten aus x1,y2,z2 haben weil
    dort die Spalten x,y,z nicht die Richtigen Daten haben. bzw. in zu einem
    späteren Zeitpunkt erst relevant sind.

    Wo ich gerade so drüber schreibe, evtl Umschiffe ich diese Hürde auch
    indem ich die Daten einfach in der Tabelle Tausche! Die Stellen wo ich
    getauscht habe sind anschließend noch durch die Spalte "Vorbearbeitung"
    gekennzeichnet... :grübel

    Hmmm, das wäre ne Möglichkeit...

    aber ne gute Idee ist trotzdem willkommen! :pfeiffen


    Ich glaube ich mache aber ersteinmal feierabend. und denke noch ein wenig
    darüber nach.
     
  6. #6 rottifan, 04.03.2008
    rottifan

    rottifan Guest

    Im Grund genommen würde ich das Ganze ja so machen dass ich nur die Spalte Wagnr und count(Wagpos) nehme und den Variablenwert übernehmen.

    $Variable = param('Vorbearbeitung');


    #und dann die Abfrage

    select Verldat, Maschnr, Wagnr, count(Wagpos) as SummeTeile
    from tab_Kommliste where Status = '10' and Vorbearbeitung = $Variable
    Group by Verldat, Maschnr, wagnr
    order by Verldat, Maschnr, Wagnr


    So würde ich das lösen. Leider weiss ich nicht wo Du die Variable "Vorbearbeitung her bekommst, denn ich arbeite nicht mit Delphi und kenne die Anwendung nicht.
     
  7. #7 Karsten, 04.03.2008
    Karsten

    Karsten Jeeper

    Dabei seit:
    10.08.2007
    Beiträge:
    189
    Zustimmungen:
    0
    Vorname:
    Karsten
    Servus ..

    kannst du mal kurz die tabelle mit den spalten posten ?

    Ich denke an ein Konstrukt wie:

    select x,y,z,vorbereitung,IF(vorbearbeitung==0,x1,y2,z2) from
    tab_Kommliste where Status = '10'
    and
    vorbearbeitung in (0,1);

    Wenn vorbearbeitung nur die werte 0,1 hat, dann müsste
    man das "and statement" weglassen können.
    Ansonsten sorgt das IF(Bedingung, WERT,WERT .. ) für
    die ausgabe.

    versuch es mal

    Gruss Karsten
     
  8. #8 DieTerMiete, 04.03.2008
    DieTerMiete

    DieTerMiete Gartendesigner oder so...

    Dabei seit:
    08.08.2007
    Beiträge:
    2.703
    Zustimmungen:
    2
    Vorname:
    Christian
    Tabelle hab ich gerade nicht zur hand, muß mal schauen ob ich das
    wichtigste noch aus'm Kopf quetschen kann... sonst erst morgen.

    Sind aber ca. 30 Spalten mit Daten wobei einige Hundert Datensätze
    zu einem Wagen gehören (Wagnr) ich summiere mir die einzelnen Datensätze (Teilegesamt pro Wagen) indem Ich mir die einzelnen (Wagpos) summiere

    Es sieht also so aus das jeder Datensatz eine Wagennummer und eine Wagenposition hat.

    Ich bastele mir so eine Übersicht aus der heraus diese Wagen ausgewählt und anschließend
    einen anderen Status bekommen.die Überschrift der Übersicht sieht dann so aus:

    Datum | Maschnr | Wagennr | SummeTeile


    Jetzt ist es nur so das sich heute etwas geändert hat und ich bei dem Zusatz "Vorbearbeitung" nicht auf die eigentliche Wagennr, Wagenpos selektieren kann sondern nach Wagennr2 und Wagenpos2. Darum die
    beiden Abfragen oben die für sich allein genommen auch funktionieren
    nur habe ich so zwei Ergebnismengen.


    Werde es wahrscheinlich aber anders machen, mit dem "Spaltenswap"
    indem ich die Daten von Wagennr und Wagenpos mit den Daten von Wagennr2 und Wagenpos2 Tausche so brauche ich nur eine einfache Abfrage (wei die erste oben) und das ganze bringt in meiner Anwendung später sogar Vorteile. Wo ich getauscht habe erkenne ich daran wo unter "Vorbearbeitung" ne '1' steht.
    Macht auch mehr Sinn. Außerdem soll das ganze bis Freitag einigermaßen funzen! :D

    aber wenn ihr nochne Idee habt immer her damit, vielleicht brauch ich das ein anderes mal. ;-)

    Um es mal neutral zu halten, es ist im Grunde eine Selektion von Daten aus einer
    Tabelle wobei auf andere Spalten Selektiert wird wenn in einer Spalte in der
    Tabelle ein bestimmter Wert steht :verrückt :D

    Gruß...
     
  9. #9 DieTerMiete, 05.03.2008
    DieTerMiete

    DieTerMiete Gartendesigner oder so...

    Dabei seit:
    08.08.2007
    Beiträge:
    2.703
    Zustimmungen:
    2
    Vorname:
    Christian
    So mein Problem hab ich wie gesagt erst einmal anders gelöst, aber wer mal
    vor so einem Problem steht dem kann ich diese Seite ans Herz legen, sehr
    informativ :daumen :

    http://www.sql-und-xml.de/index.html
     
Thema:

einer Ahnung von SQL??