verwendetes Datenbanksystem: <MySQL> / Linq2Mysql (dbLinq2007)
Ich habe folgenden SQL-Query:
SELECT
s.zustaendiger_mitarbeiter_id AS id,
Concat(ma.vorname,ma.nachname)AS name,
SUM(s.primaer_id!=0) AS gesamt,
SUM(s.gelesen=1) AS gelesen,
SUM(s.gelesen=0) AS ungelesen
FROM
supportfaelle AS s,
mitarbeiter AS ma
WHERE
s.zustaendiger_mitarbeiter_id = ma.primaer_id
GROUP BY
s.zustaendiger_mitarbeiter_id
Das funktioniert so recht gut.
Erstellt dann eine Tabelle mit einer übersicht wie diese:
|id |name |gesamt|gelesen|ungelesen|
+---+-----+------+-------+---------+
|1 |mi1 |215 |0 |215 |
|2 |mi2 |84 |3 |81 |
|3 |mi3 |138 |0 |138 |
|4 |mi4 |109 |0 |109 |
|5 |mi6 |179 |0 |179 |
|6 |mi6 |66 |0 |66 |
Nur... wie macht man sowas tolles jetz in Linq? 😕
Mein Blog: http://www.frickelblog.de
Hallo,
ist jetzt aus dem Bauch hereus geschossen 😃
var result = from s in supportfaelle
join ma in mitarbeiter on s.zustaendiger_mitarbeiter_id equals ma.primaer_id
where s.primaer_id != 0 && s.gelesen == 1 && s.ungelesen == 0
group g by s.zustaendiger_mitarbeiter_id
select new {
id = s.zustaendiger_mitarbeiter_id,
name = ma.vorname + ', ' ma.nachname,
g.Sum(p => p.primaer_id),
g.Sum(p => p.gelesen)
g.Sum(p => p.ungelesen) }
Wie gesagt, ist einfach jetzt runtergetippt. Aber so in etwa würde es aussehen. Ich denke jetzt mal, dass das so nicht auf Anhieb funktioniert.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Hallo,
Ich denke jetzt mal, dass das so nicht auf Anhieb funktioniert.
Zumindest fehlt beim group
das into
😉
Bezüglich join
ist noch zu prüfen ob das nicht über das Mapping bereits vorhanden ist.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Sind noch andere kleine fehler drin..
z.b. das ', ' nicht geht, weil ein char nur ein zeichen kann 😄
...aber bin noch am basteln
mhm...
Einer ne Idee, warum ich weder "s" - noch "ma" im Select zur verfügung habe?
Hab lediglich das "g" von der gruppierung zur verfügung, kann da aber keine felder ansprechen.
So sieht das inzwischen bei mir aus:
var res_gruppen = from s in DB.supportfaelle
join ma in DB.mitarbeiter
on s.zustaendigermitarbeiterid equals ma.primaerid
where s.primaerid != 0 && s.gelesen == 1 && s.gelesen == 0
group s by s.zustaendigermitarbeiterid into g
select new
{
id = s.zustaendigermitarbeiterid,
name = ma.vorname + ", "+ ma.nachname,
a = g.Sum(p => p.primaer_id),
b = g.Sum(p => p.gelesen),
c = g.Sum(p => p.ungelesen)
}
Mein Blog: http://www.frickelblog.de
Hallo,
Einer ne Idee, warum ich weder "s" - noch "ma" im Select zur verfügung habe?
Hab lediglich das "g" von der gruppierung zur verfügung, kann da aber keine felder ansprechen.
Weil das im g
steckt. Du kannst dir das so vorstellen dass nach der Gruppierung mit einer neuen Abfrage begonnen wird und von daher kann auf die "alten" Variablen nicht mehr zugegriffen werden. D.h. die Gruppierung muss entsprechend erfolgen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"