2016-09-09 9 views
0

Dies ist eine Stored Procedure, die in SQL Server ausgeführt wird. Ich möchte auch die Gesamtanzahl der zurückgegebenen Daten hervorheben.So rufen Sie die Gesamtzahl ab

ALTER PROCEDURE [dbo].[spManufacturerdata] 
AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON; 

-- Insert statements for procedure here 
SELECT [t1].[OEMName] AS [oem], [t1].[OemId] AS [id] 
FROM (
    SELECT DISTINCT [t0].[OEMName], [t0].[OemId] 
    FROM [dbo].[tblOEM] AS [t0] 
    WHERE [t0].[IsActive] = 1 
    ) AS [t1] 
order BY LOWER([t1].[OEMName]) 

END 

Vielen Dank im Voraus.

+1

Beispieldaten und die gewünschten Ergebnisse erklären würde helfen, was Sie wollen machen. Ich bin mir nicht sicher, was "Gesamtzahl der zurückgegebenen Daten" bedeuten soll. –

+0

Können Sie nicht einfach die rowcount auf der anrufenden Seite überprüfen? – dean

Antwort

0

hinzufügen Gruppe von:

SELECT COUNT([t1].[OemId]) AS TotalCount,[t1].[OEMName] AS [oem], [t1].[OemId] AS [id] 
FROM (
    SELECT DISTINCT [t0].[OEMName], [t0].[OemId] 
    FROM [dbo].[tblOEM] AS [t0] 
    WHERE [t0].[IsActive] = 1 
    ) AS [t1] 
GROUP BY [t1].[OEMName] , [t1].[OemId] 
order BY LOWER([t1].[OEMName]) 
0

Ich weiß, dass ein COUNT() oder COUNT(DISTINCT) nur 1 für jede Zeile zurückkehren würde.

Wenn Sie die Gesamtzahl über alle Zeilen wollen, dann wollen Sie so etwas wie dieses:

SELECT t.OEMName as oem, t.OemId as id, 
     SUM(COUNT(*)) OVER() as total_rows, 
     COUNT(*) OVER() as total_combinations 
FROM dbo.tblOEM t 
WHERE t.IsActive = 1 
GROUP BY t.OEMName, t.OemId 
ORDER BY LOWER(t.OEMName); 
0

Ich bin nicht sicher, ob ich Sie verstanden haben. Wenn Sie die Gesamtzurückgegebenen Datensätze von früheren Auswahl zählen möchten, müssen Sie nur Zahl() aufzurufen:

SELECT COUNT([t1].[OEMName]) AS totalRowsInPreviuosQuery 
FROM (
    SELECT DISTINCT [t0].[OEMName], [t0].[OemId] 
    FROM [dbo].[tblOEM] AS [t0] 
    WHERE [t0].[IsActive] = 1 
) AS [t1] 
0

Try this,

SELECT count(*) AS TotalCount 
FROM (
    SELECT DISTINCT [t0].[OEMName] 
     ,[t0].[OemId] 
    FROM [dbo].[tblOEM] AS [t0] 
    WHERE [t0].[IsActive] = 1 
    ) AS [t1] 
Verwandte Themen