實作訂單按照日期分類統計每天訂單數及付款數(并且能夠分頁)
訂單表
訂單號 訂單日期 訂單金額 是否付款(0是1否)
NO001 2020-4-1 20 0
NO002 2020-4-1 20 1
NO003 2020-4-2 20 0
NO004 2020-4-2 20 0
NO005 2020-4-2 20 1
NO006 2020-4-4 20 0
NO007 2020-4-4 20 1
NO008 2020-4-4 20 1
要求按照日期統計每天的訂單數及付款訂單數 并且能夠分頁。
實作效果
日期 訂單數 付款數
2020-4-1 2 1
2020-4-2 3 2
2020-4-4 3 1
下一頁/上一頁
uj5u.com熱心網友回復:
USE tempdb
GO
IF OBJECT_ID('dbo.[t]') IS NOT NULL
DROP TABLE dbo.[t]
GO
CREATE TABLE dbo.[t](
[訂單號] NVARCHAR(10)
,[訂單日期] DATE
,[訂單金額] INT
,[是否付款] BIT
)
GO
SET NOCOUNT ON
INSERT INTO dbo.[t] VALUES(N'NO001',N'2020-4-1',N'20',N'0')
INSERT INTO dbo.[t] VALUES(N'NO002',N'2020-4-1',N'20',N'1')
INSERT INTO dbo.[t] VALUES(N'NO003',N'2020-4-2',N'20',N'0')
INSERT INTO dbo.[t] VALUES(N'NO004',N'2020-4-2',N'20',N'0')
INSERT INTO dbo.[t] VALUES(N'NO005',N'2020-4-2',N'20',N'1')
INSERT INTO dbo.[t] VALUES(N'NO006',N'2020-4-4',N'20',N'0')
INSERT INTO dbo.[t] VALUES(N'NO007',N'2020-4-4',N'20',N'1')
INSERT INTO dbo.[t] VALUES(N'NO008',N'2020-4-4',N'20',N'1')
GO
------------ 以上為測驗表及測驗資料 ----------
--1. 創建視圖
IF OBJECT_ID('view_t') IS NOT NULL
DROP VIEW view_t
GO
CREATE VIEW view_t
AS
SELECT
[訂單日期]
,COUNT(1) AS 訂單數
,SUM(CASE WHEN 是否付款=0 THEN 1 ELSE 0 END) AS 付款數
FROM dbo.t
GROUP BY [訂單日期]
GO
--2. 查看所有記錄
SELECT * FROM view_t
/*
訂單日期 訂單數 付款數
---------- ----------- -----------
2020-04-01 2 1
2020-04-02 3 2
2020-04-04 3 1
*/
--3. 分頁查詢
DECLARE @pageIndex INT,@pageSize INT
SET @pageIndex=1 -- 第1頁
SET @pageSize=2 -- 每頁2條記錄
SELECT * FROM view_t ORDER BY [訂單日期] OFFSET @pageSize * (@pageIndex-1) ROW FETCH NEXT @pageSize rows only
/*
訂單日期 訂單數 付款數
---------- ----------- -----------
2020-04-01 2 1
2020-04-02 3 2
*/
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/44591.html
標籤:疑難問題
上一篇:求教一個非常詭異問題
下一篇:求大神幫解啊!
