values filtern

tiiduu

Neuer Benutzer
Beiträge
2
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

  • Bildschirmfoto 2012-05-29 um 00.52.12.png
    Bildschirmfoto 2012-05-29 um 00.52.12.png
    156,3 KB · Aufrufe: 3
  • Bildschirmfoto 2012-05-29 um 00.53.42.png
    Bildschirmfoto 2012-05-29 um 00.53.42.png
    39,3 KB · Aufrufe: 2
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.647
Ich kenne die Funktionsweise von GROUP_CONCAT jetzt nicht aber wiso nimmst du nicht left(name,3) und gruppierst dannach?
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.647
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)
 
Oben