Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL-Abfrage Jahre/Monate

Empfohlene Antworten

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

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?

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

Ich arbeite mit dem SQL Management Studio 2005 also mySqL.

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

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

Super Danke !

So habe ich es jetzt lösen können:

Select

Left (Feldname, 4) + ' / '+ RIGHT (Feldname, 2) AS 'Gewünschter Feldname'

from Tabellenname

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 B) 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.

Du willst quasi ne Matrixtabelle daraus machen, ne?

Das geht bei MSSQL 2005 mit dem Pivot Befehl.

--> Verwenden von PIVOT und UNPIVOT

Ja, genau. Danke ich werde mir das mal anschauen. ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.