写一小部分我有一个SELECT语句如下:SQL:在SELECT(存储过程)
select car.car_ID,isnull(#tmpCount.RowCounter,0) AS RowCounter,ISNULL(#tmpNotServiced.DistinctCounter,0) AS DistinctCounter, ISNULL(#tmpNA.NACounter,0) AS NACounter, (isnull(#tmpCount.RowCounter,0) + ISNULL(#tmpNotServiced.DistinctCounter,0) + ISNULL(#tmpNA.NACounter,0)) AS Total, (CASE ISNULL(#tmpNotServiced.DistinctCounter,0) WHEN 0 THEN 'Closed' ELSE 'Open' END) AS Status
from car
left outer join #tmpCount
on car.AUD_ID = #tmpCount.car_ID
left outer join #tmpNotServiced
on car.AUD_ID = #tmpNotServiced.car_ID
LEFT OUTER JOIN #tmpNA
ON car.car_ID = #tmpNA.car_ID
然后一个存储过程[p_GetServiced]计数所有开放和全封闭。
CREATE PROCEDURE [dbo].[p_GetServiced]
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #tmp1
(
car_ID BIGINT,
RowCounter BIGINT,
DistinctCounter BIGINT,
NACounter BIGINT,
Total BIGINT,
[Status] VARCHAR(MAX)
)
CREATE TABLE #tmp2 (car_ServiceDate DATETIME)
INSERT INTO #tmp1
EXEC [p_GetServiceDetail]
SELECT [Status] AS [Serviced], COUNT(*) AS [Status] FROM #tmp1
GROUP BY [Status]
INSERT INTO #tmp2
SELECT car_TargetDate FROM dbo.car
END
GO
我想让它返回 '服务' 和一小部分(5 2)如:服务(2/5)或NotServiced(3/5)
注:2作为开放和5总行
很好的答案,只是问:所以它基本上连接计数? – inzefinite
@inzefinite它是子查询计数与表的总计数的串联。如果我将'COUNT'函数结果分离出变量,然后再将它们连接起来,可能会更加整洁。 – XN16