Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
Wanneer u samengestelde query's maakt, gaat de Query and View Designer uit van bepaalde veronderstellingen, zodat er een geldige query kan worden gemaakt. Als u bijvoorbeeld een samenvattende query maakt en een gegevenskolom markeert voor uitvoer, maakt de Query- en Weergaveontwerper de kolom automatisch onderdeel van de GROUP BY-clausule, zodat u niet per ongeluk probeert de inhoud van een afzonderlijke rij in een samenvatting weer te geven.
Het gebruiken van Groeperen op
De ontwerpfunctie voor query's en weergaven gebruikt de volgende richtlijnen voor het werken met kolommen:
Wanneer u de optie Groeperen op kiest of een statistische functie toevoegt aan een query, worden alle kolommen die zijn gemarkeerd voor uitvoer of die worden gebruikt voor sortering automatisch toegevoegd aan de GROUP BY-component. Kolommen worden niet automatisch toegevoegd aan de GROUP BY-component als ze al deel uitmaken van een statistische functie.
Als u niet wilt dat een bepaalde kolom deel uitmaakt van de GROUP BY-component, moet u deze handmatig wijzigen door een andere optie te selecteren in de kolom Groeperen op van het deelvenster Criteria. De ontwerpfunctie voor query's en weergaven verhindert echter niet dat u een optie kiest die kan resulteren in een query die niet wordt uitgevoerd.
Als u handmatig een queryuitvoerkolom toevoegt aan een aggregatiefunctie in het deelvenster Criteria of SQL, zal de Query en View Ontwerper andere uitvoerkolommen niet automatisch uit de query verwijderen. Daarom moet u de resterende kolommen verwijderen uit de queryuitvoer of ze onderdeel maken van de GROUP BY-component of van een statistische functie.
Wanneer u een zoekvoorwaarde invoert in de kolom Filter van het deelvenster Criteria, volgt de query- en weergaveontwerper de volgende regels:
Als de kolom "Groeperen op" van het raster niet wordt weergegeven (omdat u nog geen samengestelde query hebt opgegeven), wordt de zoekvoorwaarde in de WHERE-clausule geplaatst.
Als u zich al in een aggregerende query bevindt en de optie Waar in de kolom Groeperen op hebt geselecteerd, wordt de zoekvoorwaarde in de WHERE-clausule geplaatst.
Als de kolom Group By een andere waarde bevat dan Where, wordt de zoekvoorwaarde in de HAVING-component geplaatst.
De HAVING- en WHERE-componenten gebruiken
In de volgende principes wordt beschreven hoe u kunt verwijzen naar kolommen in een statistische query in zoekvoorwaarden. Over het algemeen kunt u een kolom in een zoekvoorwaarde gebruiken om de rijen te filteren die moeten worden samengevat (een WHERE-component) of om te bepalen welke gegroepeerde resultaten worden weergegeven in de uiteindelijke uitvoer (een HAVING-component).
Afzonderlijke gegevenskolommen kunnen worden weergegeven in de WHERE- of HAVING-component, afhankelijk van hoe ze elders in de query worden gebruikt.
WHERE-componenten worden gebruikt om een subset van rijen te selecteren voor het samenvatten en groeperen en worden dus toegepast voordat er groeperingen worden uitgevoerd. Daarom kunt u een gegevenskolom in een WHERE-component gebruiken, zelfs als deze geen deel uitmaakt van de GROUP BY-component of die deel uitmaakt van een statistische functie. Met de volgende instructie worden bijvoorbeeld alle titels geselecteerd die meer dan $ 10,00 kosten en wordt de gemiddelde prijs berekend.
SELECT AVG(price) FROM titles WHERE price > 10
Als u een zoekvoorwaarde maakt waarbij een kolom ook wordt gebruikt in een GROUP BY-component of statistische functie, kan de zoekvoorwaarde worden weergegeven als een WHERE-component of een HAVING-component. U kunt bepalen welke voorwaarde u moet maken wanneer u de voorwaarde maakt. De volgende instructie maakt bijvoorbeeld een gemiddelde prijs voor de titels voor elke uitgever en geeft vervolgens het gemiddelde weer voor de uitgevers waarin de gemiddelde prijs hoger is dan $ 10,00:
SELECT pub_id, AVG(price) FROM titles GROUP BY pub_id HAVING (AVG(price) > 10)
Als u een statistische functie in een zoekvoorwaarde gebruikt, omvat de voorwaarde een samenvatting en moet deze daarom deel uitmaken van de HAVING-component.
Zie ook
Queryresultaten samenvatten (Visual Database Tools)
queryresultaten sorteren en groeperen (Hulpmiddelen voor visuele databases)