Grupa przez i uwzględniając MYSQL

głosy
-2

Mam następujące kwerendy, która pobiera mi wynik chcę, ale nie mogę groupe przez „id_utilisateur” oto zapytanie:

SELECT count(distinct d.id_dossier), p.name, u.id_utilisateur, u.superior
FROM dossier AS d
LEFT JOIN action AS a
ON a.id_dossier=d.id_dossier
LEFT JOIN CD AS cd
ON cd.id_dossier=d.id_dossier
LEFT JOIN utilisateur AS u
ON u.id_utilisateur=cd.id_utilisateur
LEFT JOIN personne AS p
ON p.id_personne=u.id_personne
WHERE d.id_dossier>0
GROUP BY u.id_utilisateur,d.id_dossier
HAVING (
    SELECT COUNT(a2.id_dossier)
    FROM action AS a2
    WHERE a2.fait=0
    AND a2.commentaire=0
    AND a2.id_dossier=d.id_dossier
)<1
ORDER BY d.date_creation DESC
LIMIT 500

Grupa przez id_utilisateur nie działa, i uzyskać wyniki dla tego samego użytkownika w wielu wierszach, jak mogę rozwiązać ten problem?

Jest to wynik otrzymuję vs oczekiwaną

wprowadzić

Utwórz 18/12/2018 o 11:13
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
2

GROUP BYwszystkie nieagregowana kolumn w SELECT:

SELECT count(distinct d.id_dossier), p.name, u.id_utilisateur, u.superior
FROM . . .
WHERE . . .
GROUP BY  p.name, u.id_utilisateur, u.superior
HAVING . . .

Jeśli wyraźnie chcą za jeden wiersz u.id_utilisateur, a następnie zsumować wszystkie inne kolumny:

SELECT count(distinct d.id_dossier),
       MAX(p.name) as name, u.id_utilisateur, 
       MAX(u.superior) as superior
FROM . . .
WHERE . . .
GROUP BY  p.name, u.id_utilisateur, u.superior
HAVING . . .
Odpowiedział 18/12/2018 o 11:25
źródło użytkownik

głosy
0

Dla tych z Was, którzy mają ten sam problem, rozwiązałem to po prostu umieszczając podkwerenda wewnątrz i kondycji i usunąłem HAVING dla tego konkretnego zapytania.

Odpowiedział 18/12/2018 o 12:54
źródło użytkownik

głosy
0

jeśli chcesz id_utilisateurodrębne, to trzeba group by id_utilisateur.

zapytanie ma GROUP BY u.id_utilisateur,d.id_dossier, trzeba go zmienić GROUP BY u.id_utilisateur.

Jeśli potrzebujesz więcej kolumn na zapytania, a następnie umieścić swoją grupę przez oświadczenie w zapytaniu wewnętrznej, a następnie dołączyć tabele.

Odpowiedział 18/12/2018 o 11:18
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more