LoehnenGate Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Hallo zusammen, ich möchte mir aus einer Tabelle "Vertreterumsatz" die Umsatzdaten der einzelnen Vertreter für das Gesamte Jahr anzeigen lassen. Die Tabelle besteht aus (Mandant, Periode, Vertreter, Roherloes, Umsatz). Wie kann ich, mir den Umsatz eines Verteter nicht Periodenbezogen, sonder für das komplette Jahr anzeigen lassen? So sieht mein Ergebnis aus: 2010007 Helmut Schön 10000,00 2010006 Helmut Schön 25000,00 2010006 Inge Meisel 30000,00 usw. Ich hätte allerdings gerne folgendes Ergebnis: 2010 Helmut Schön 35000,00 2010 Inge Meisel 30000,00 usw. Wäre nett wenn mir jemdan helfen könnte, weil ich mich mit SQL-Abfragen leider nur sehr wenig auskenne. Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dr_Jekyll Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Ich habe ein ähnliches Problem. Es gibt ein string-Feld in der Datenbank in dem der Monat und das Jahr so drin stehen: 199503. Nun möchte ich es aber auf dem Textfeld so sehen 1995/03. Wie drücke ich das mit SQL aus? Zu dem ersten Problem... Kannst du da nicht einfach die FieldLenght auf 4 begrenzen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Ich habe ein ähnliches Problem. Es gibt ein string-Feld in der Datenbank in dem der Monat und das Jahr so drin stehen: 199503. Nun möchte ich es aber auf dem Textfeld so sehen 1995/03. Wie drücke ich das mit SQL aus? Zu dem ersten Problem... Kannst du da nicht einfach die FieldLenght auf 4 begrenzen? Hallo. ihr habt beide eine Designfehler in eurer Datenbank. Datumswerte dürfen NUR mit Typ DATE gespeichert werden, alles andere ist Unsinn. Um das Problem jeweils nun konkret zu lösen, müsstet ihr eure Datenbankversion bekanntgebebn, da sich die Lösung je nach verwendetem System unterscheidet Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dr_Jekyll Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Ich arbeite mit dem SQL Management Studio 2005 also mySqL. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Ich arbeite mit dem SQL Management Studio 2005 also mySqL. In MySQL wäre dies die LEFT - Funktion. Ein kurzer Blick in die Doku : MySQL :: MySQL 5.5 Reference Manual :: 11.5 String Functions Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dr_Jekyll Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Das ist doch die Antwort auf die erste Frage. Ich will aber zwischen 1995 und 03 ein / haben. Im MOment ist es ja nur 199503 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Das ist doch die Antwort auf die erste Frage. Ich will aber zwischen 1995 und 03 ein / haben. Im MOment ist es ja nur 199503 - Einfach eine Kombination LEFT und RIGHT plus ein CONCAT_WS für das "/" ? Habe jetzt gerade keine MYSQL am laufen, um es dir auszuschreiben... Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dr_Jekyll Geschrieben 14. Juli 2010 Teilen Geschrieben 14. Juli 2010 Super Danke ! So habe ich es jetzt lösen können: Select Left (Feldname, 4) + ' / '+ RIGHT (Feldname, 2) AS 'Gewünschter Feldname' from Tabellenname Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LoehnenGate Geschrieben 14. Juli 2010 Autor Teilen Geschrieben 14. Juli 2010 Um das Problem jeweils nun konkret zu lösen, müsstet ihr eure Datenbankversion bekanntgebebn, da sich die Lösung je nach verwendetem System unterscheidet Ok, mein Fehler hätte euch natürlich ein paar mehr Informationen geben müssen, ich arbeite mit MSSQL 2005. Ich konnte meine Frage auch mitlerweile, dank unserem Programmierer, lösen. Bevor die Frage jetzt aufkommt, warum unser Programmierer es nicht macht...a) ich soll/muss mich damit beschäftigen und ist er mit anderen Projekten beschäftigt. Wir haben es mit SubString(Cast ...) gelöst. Hier noch der entsprechende Code: Select SubString(Cast([StatVKVertreter].[Periode] As [varchar]), 1, 4) As [Jahr], [Vertreter].[Matchcode], Sum([StatVKVertreter].[Umsatz]) As [Umsatz] From [StatVKVertreter] With(ReadUncommitted) Inner Join [Vertreter] With(ReadUncommitted) On [StatVKVertreter].[Mandant] = [Vertreter].[Mandant] And [StatVKVertreter].[Vertreter] = [Vertreter].[Vertreternummer] Where [StatVKVertreter].[Mandant] = [$System:Mandant] Group By SubString(Cast([StatVKVertreter].[Periode] As [varchar]), 1, 4), [Vertreter].[Matchcode] Jetzt habe ich allerdings eine weitere Frage. In der Darstellung habe ich in Spalte 1 Jahre, in Spalte 2 Vertreter in der Spalte 3 die Umsätze. Beispiel: Jahr Vertreter Umsatz 2010 Müller 10000 2010 Giesel 25000 Ist es möglich bzw. wie kompliziert ist es, das Ergebnis so darzustellen: Jahr Müller Giesel 2010 10000 25000 Also alle Vertreter nebeneinander und unterhalb der Vertreter die Umsätze. Danke schon mal für eure Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
die Alexandra Geschrieben 15. Juli 2010 Teilen Geschrieben 15. Juli 2010 Du willst quasi ne Matrixtabelle daraus machen, ne? Das geht bei MSSQL 2005 mit dem Pivot Befehl. --> Verwenden von PIVOT und UNPIVOT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LoehnenGate Geschrieben 15. Juli 2010 Autor Teilen Geschrieben 15. Juli 2010 Ja, genau. Danke ich werde mir das mal anschauen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.