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

values filtern

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von tiiduu, 29 Mai 2012.

  1. tiiduu

    tiiduu Neuer Benutzer

    Hallo zusammen,

    ich versuche mich im Moment in SQL einzuarbeiten, jedoch komm ich an einer Stelle einfach
    nicht weiter. Mal schauen ob ihr mir helfen könnt :)

    Ich habe eine Tabelle "Tasks" in der sich eine Spalte "name" befindet.
    Die Namen sind gegliedert wie im Anhang zu sehen.

    z.B:
    3011_General
    3011_Consulting

    3021_QuickReport
    3022_TravelTime

    Meine Aufgabe ist es nun eine Query zu erstellen in der Vorname, Nachname,
    billable (berechenbare Zeit in % ) und die Aufgabe (tasks) angezeigt werden.

    Die Besonderheit hierbei:

    Die Werte der Spalte "name" in der Tabelle "tasks" sollen gefilter werden und
    zusammengefasst werden.

    z.B:

    3011_General
    3011_Consulting
    sollen zusammen gefasst werden zu 301 ( immer die ersten 3 Ziffer )

    3021_QuickReport
    3022_TravelTime
    sollen zusammen gefasst werde zu 302 ( immer die ersten 3 Ziffer )

    Ich habe derzeit folgende Query:

    Code:
    SELECT at_user_0.last_name,at_user_0.first_name,Sum(tt_record_0.actuals)/60/(21*8.4)*100 AS 'billable %', billing_type_id, GROUP_CONCAT(task_0.name)
    FROM actitime.at_user at_user_0, actitime.project project_0, actitime.task task_0, actitime.tt_record tt_record_0
    WHERE at_user_0.id = tt_record_0.user_id AND task_0.id = tt_record_0.task_id AND project_0.id = task_0.project_id AND ((tt_record_0.record_date Between {d '2011-12-01'} And {d '2011-12-31'}))
    GROUP BY at_user_0.last_name, at_user_0.first_name, task_0.name, task_0.billing_type_id
    HAVING (task_0.billing_type_id=1)
    jedoch resultiert daraus noch eine etwas seltsame Tabelle die ihr im Anhang sehen könnt.

    Kann mir hier irgend jemand weiterhelfen?

    Viele Grüße & danke schon einmal
     

    Anhänge:

  2. ukulele

    ukulele Datenbank-Guru

    Ich kenne die Funktionsweise von GROUP_CONCAT jetzt nicht aber wiso nimmst du nicht left(name,3) und gruppierst dannach?
     
  3. tiiduu

    tiiduu Neuer Benutzer

    Könntest du mir vielleicht mal den kompletten Code schreiben, so wie du es meinst? :)
     
  4. ukulele

    ukulele Datenbank-Guru

    Da ich die Tabellenstruktur nicht ganz verstehe mal hier die Kurzform, die du einabreiten müsstest:
    Code:
    SELECT    left(name,3) AS ShortName
    FROM    tast_0
    GROUP BY left(name,3)
     
    PLSQL_SQL gefällt das.
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