Ich bin neu bei sql, wenn die Antwort offensichtlich ist, aber ich konnte sie nirgendwo finden. Also ich möchte die CategoryName, Beschreibung und den Durchschnittspreis der Produkte, die in der gleichen Kategorie sind. Unten ist das Bild der 2 Tabellen beteiligt. Das Problem ist die Beschreibung ich kann keinen Weg finden, es zu zeigen. (Es gibt 8 Kategorien und jede Kategorie hat 1 Beschreibung)Spalte ist in der Auswahlliste ungültig, da sie weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten ist. [Ntext]
Dies ist der Code die ich bisher gemacht haben, aber es hat den Fehler:
SELECT c.CategoryName,c.Description,avg(p.UnitPrice)
FROM Categories AS c
INNER JOIN Products AS p ON c.CategoryID=p.CategoryID
GROUP BY c.CategoryName
Der Fehler:
Column 'Categories.Description' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Entschuldigung für mein schlechtes Englisch:/
Der Fehler sagt Ihnen Ihr genaues Problem. Sie haben Beschreibung in der Liste neben auswählen, aber Sie haben es nicht in Ihrer Gruppe durch Klausel – Matt
Ich habe das auch versucht, aber weil es Ntext heißt: Die Text, Ntext und Bild Datentypen können nicht verglichen oder sortiert werden, außer bei Verwendung IS NULL oder LIKE-Operator. –
der Fehler über ntext und Dinge würde bedeuten, dass Sie nicht nach ihm gruppieren dürfen und es ist ein anderer Fehler. Aber lösen Sie es, indem Sie die Spalte in SELECT und GROUP BY in einen Datentyp umwandeln, den Sie aggregieren können, zB CAST (c.Description AS VARCHAR (???)) wo ??? ist eine akzeptable Länge oder verwenden Sie "MAX". – Matt