Ja, es ist etwas unlogisch, dass wenn du ein JOIN-Kriterium ein PK ist und trotzdem man alle Felder aggregieren oder gruppieren muss. Aber es ist konsequent bzgl. der Regel dass
jedes Feld aggregiert oder gruppiert ist.
Übrigens:
- Bei
MSSQL fasst man Bezeichner in eckigen Klammern ein oder notfalls in doppelten Anführungszeichen. Einfache Anführungszeichen sind für Strings.
- IIF ist übersichtlicher als ein CASE-WHEN-Konstrukt mit zwei Situationen.
- COALESCE mit zwei Parametern ist zwar dasselbe wie ISNULL, aber ISNULL ist leichter verständlich. /Edit: Und performanter.
- Und bitte benutze Views, statt so viele Zeilen
SQL im Quelltext zu haben.
- Und zu QuotedStr kein Kommentar.
Na ja gut, egal. Namen der Tabellen und Felder sind der Horror. Dachte erst
Paradox, aber das kannte immerhin längere Feldnamen.
In "normalem"
SQL wäre das wohl so erforderlich:
SQL-Code:
SELECT
[...]
CASE WHEN b.in__vrrd < a.minstock
then '
Mindestmenge unterschritten'
ELSE '
'
END AS '
Kommentar',
[...]
GROUP BY
[...]
'
Kommentar'
-- da weiß ich jetzt garnicht, ob MS-SQL das so kann
Nein, kann es nicht. Felder, die du nur aus Aggregaten oder Gruppen generierst, gruppierst du nicht. Sonst gruppierst du dasselbe Feld (bzw. hier zwei Felder) zweimal, das ergibt keinen Sinn.