Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Datum zusammenfassen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Neo87, 1 November 2015.

  1. Neo87

    Neo87 Neuer Benutzer

    Guten Abend zusammen,

    ich sitze verzweifelt an einer für die ein oder anderen einfach Abfrage. Zugegeben ich beschäftige mich erst seit ca. 2 Monaten mit dem Thema MS-SQL.

    Folgendes Problem:
    In der Tabelle Transactions sehen wir folgendes:
    [​IMG]
    [​IMG]

    Ich möchte nun, dass das Datum zusammengefasst wird je Tag. In der Tabelle sind einzelne Transaktionen. Bei der Abfrage soll dann halt nur noch 1 Tag dargestellt werden. Das Feld Total Amount müsste dann auch summiert werden, je Tag...

    Hat jmd. eine Idee, wie ich das geschickt lösen kann?

    Vielen Dank schon mal für eure Unterstützung!

    Grüße Neo
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Ein ganz normale Aggregation also, oder? Sinngemäß: select trans_date::date, sum(amount) from ... group by trans_date::date, wobei das trans_date::date das Casting des Timestamps zu Date darstellt. Das kann in M$SQL durchaus syntaktisch anders gehen, ich nutze es nicht und kenne das daher nicht gut genug.
     
  3. Chuky666

    Chuky666 Datenbank-Guru

    Moin moin,

    ich würde mal sagen das das Zauberwort hier "GROUP BY" ist. DU müsstest dein "trans_date" vermutlich nach datetime konvertieren und dadrüber gruppieren und dann die Summe von "Total Amount". Dann solltest du dien Ergebnis haben.

    Grüße
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Er will es ja Tag haben, daher muß er das auf das datum kürzen. Derzeit hat es ja noch den Zeitanteil..
     
  5. Chuky666

    Chuky666 Datenbank-Guru

    @akretschmer du hast völlig recht es müsste date sein und nicht datetime.... ist eindeutig zu früh für sowas und das dann noch ohne Kaffee :confused:
     
    akretschmer gefällt das.
  6. ukulele

    ukulele Datenbank-Guru

    MSSQL:
    Code:
    SELECT   cast(trans_date AS DATE) AS Tag,
         count(*) AS anzahl
    FROM  tabelle
    GROUP BY cast(trans_date AS DATE)
    
    Welche Version von MSSQL?
     
  7. Neo87

    Neo87 Neuer Benutzer

    Erst einmal möchte ich mich schon einmal für die zahlreichen Antworten bedanken. Ich komme meiner Lösung schon näher. Ich nutze MSSQL 2008R2
     
  8. ukulele

    ukulele Datenbank-Guru

    Was fehlt denn noch?
     
  9. Neo87

    Neo87 Neuer Benutzer

    select dbo.transactions.trans_date AS 'DATUM',
    dbo.articles.code AS 'PLU',
    dbo.articles.description AS 'Artikel',
    dbo.shops.description AS 'ORT',
    dbo.trans_articles.qty_weight AS 'Anzahl'

    from trans_articles

    join dbo.transactions ON dbo.trans_articles.transaction_id = dbo.transactions.id

    join dbo.articles ON dbo.trans_articles.article_id =dbo.articles.id

    join shops ON transactions.shop_id = shops.id

    WHERE card_num = '12'

    Das ist die gesamte Abfrage. Wenn ich den Befehl CAST anwende erhalte ich leider nur eine Fehlermeldung... Was mache ich wohl falsch?
     
  10. akretschmer

    akretschmer Datenbank-Guru

    steht möglicherweise in der Fehlermeldung.
     
  11. ukulele

    ukulele Datenbank-Guru

    MSSQL kennt DATE seit Version 2008 und cast() schon länger. I.d.R. liefert MS gute Fehlermeldungen und es ist auch gut dokumentiert.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden