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
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....
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ß...
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.
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... Hmmm, das wäre ne Möglichkeit... aber ne gute Idee ist trotzdem willkommen! Ich glaube ich mache aber ersteinmal feierabend. und denke noch ein wenig darüber nach.
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.
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
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! 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 Gruß...
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 : http://www.sql-und-xml.de/index.html