Вы не можете иметь Reparaturen.ReparaturNr
в CASE
, потому что вы не GROUP BY
это.
(следует из комментария, что правильно говорит вам удалить его из GROUP BY
.)
После удаления из GROUP BY
, попробуйте ...
CASE
WHEN Count(reparaturen.reparaturnr) = 1 THEN Cast(
MAX(reparaturen.reparaturnr) AS NVARCHAR(20))
ELSE 0
END AS RepairNo
Затем вы используете агрегатную функцию, о которой вам сообщит сообщение об ошибке.
SELECT kunden.kundennr,
kunden.firma,
kunden.vorname,
kunden.nachname,
kunden.mobil,
kunden.email,
kunden.geburtsdatum,
kunden.isdatenschutzerklaerung,
Count(reparaturen.reparaturnr) AS Counts,
CASE
WHEN Count(reparaturen.reparaturnr) = 1 THEN Cast(
MAX(reparaturen.reparaturnr) AS NVARCHAR(20))
ELSE 0
END AS RepairNo
FROM kunden
LEFT JOIN reparaturen
ON reparaturen.kundennr = kunden.kundennr
LEFT JOIN personal AS PersonalAngenommen
ON reparaturen.personalnr = PersonalAngenommen.personalnr
LEFT JOIN lieferanten
ON reparaturen.kennnr = lieferanten.lieferantennr
AND reparaturen.kenntyp = 2
LEFT JOIN personal
ON reparaturen.kennnr = personal.personalnr
AND reparaturen.kenntyp = 1
WHERE kunden.geloescht = 0
AND ( kunden.firma LIKE '%G%' )
GROUP BY kunden.kundennr,
kunden.firma,
kunden.vorname,
kunden.nachname,
kunden.mobil,
kunden.email,
kunden.geburtsdatum,
kunden.isdatenschutzerklaerung
ORDER BY kunden.nachname,
kunden.vorname