Optimierung einer Procedure

Werbung:
Da versteh ich was nicht bzw. hab da noch ne frage. Wenn du willst kannst du bis 23:00 noch anrufen. dann Poste ich das Ergebnis

02163 / 5719653

Gruss

Bernd
 
Hi,

schau mal ob das das gewünschte Ergebnis ist.

Code:
select t1.fk_user_id,
     t2.signature_value as project_signature,
     t3.signature_value as user_signature,
  t4.signature_value as telefon,
  t5.signature_value as fax
  FROM
  (
    SELECT s.*,
   sum(IF (s.name_id = 1, s.value_id,NULL)) AS id1,
   sum(IF (s.name_id = 2, s.value_id,NULL)) AS id2,
   sum(IF (s.name_id = 3, s.value_id,NULL)) AS id3,
   sum(IF (s.name_id = 4, s.value_id,NULL)) AS id4
  FROM tbl_signature s
   GROUP BY  s.fk_user_id,s.project_id
  )  t1
     left join tbl_signature_value t2 on t1.id1=t2.id
     left join tbl_signature_value t3 on t1.id2=t3.id
     left join tbl_signature_value t4 on t1.id3=t4.id
     left join tbl_signature_value t5 on t1.id4=t5.id
   WHERE t1.project_id=25
   GROUP BY t1.fk_user_id
   ORDER BY t1.fk_user_id;

Gruss

Bernd
 
Besten Dank. So sieht es gut aus. Wenn ich mir deine Abfrage ansehe, dann muss ich noch eine ganze Menge lernen.
Besten Dank nochmal und einen schönen Abend
Gruß
Reiner
 
So,

jetzt hab ich dein Query noch mal etwas kürzer geschrieben. Teste es mal.
Code:
 SELECT
   s.fk_user_id,
   GROUP_CONCAT(IF (s.name_id = 1, signature_value,NULL)) AS project_signature,
   GROUP_CONCAT(IF (s.name_id = 2, signature_value,NULL)) AS user_signature,
   GROUP_CONCAT(IF (s.name_id = 3, signature_value,NULL)) AS telefon,
   GROUP_CONCAT(IF (s.name_id = 4, signature_value,NULL)) AS fax
  FROM tbl_signature s
  LEFT JOIN tbl_signature_value t ON t.id = s.value_id
  WHERE s.project_id=25
  GROUP BY  s.fk_user_id;

Gruss

Bernd
 
Werbung:
Zurück
Oben