Xét bảng sau:
CREATE TABLE [dbo].[Orders](
[OrderID] [int] IDENTITY(1,1) NOT NULL,
[CustomerID] [int] NULL,
[OrderDate] [datetime] NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[OrderID] ASC
)
)
báo cáo kết quả sau đây cho thấy thứ tự cuối cùng đặt của khách hàng trong khung thời gian tiếp theo là các đơn đặt hàng khác.
;With OrderList As
(
Select Top 100 Percent * From dbo.Orders
Where OrderDate >= DateAdd(hh, -1, GetDate())
Order By OrderDate Desc
)
Select 'First' As DataType,
CustomerID, Min(OrderID) As OrderID, Min(OrderDate) As OrderDate
From OrderList
Group By CustomerID
Union All
Select 'Second' As DataType,
CustomerID, OrderID, OrderDate
From OrderList
Where OrderID Not In
(
Select Min(OrderID) As OrderID
From OrderList
Group By CustomerID
)
--Union All
--Select 'Raw' As DataType,
-- CustomerID, OrderID, OrderDate
--From Orders
Phần cuối cùng được nhận xét khi tôi sử dụng nó để kiểm tra xem tôi có thực sự có đúng hàng hay không.
Tóm lại, câu lệnh With giới hạn các đơn đặt hàng từ bảng đến bảng được đặt trong giờ trước dựa trên ngày hệ thống hiện tại và sắp xếp chúng theo ngày đặt hàng. Câu lệnh đầu tiên (Chọn 'Đầu tiên') sau đó chỉ trích xuất các đơn đặt hàng đầu tiên của khách hàng. Câu lệnh thứ hai (Chọn 'Thứ hai') sau đó trích xuất tất cả các lệnh khác không có trong câu lệnh đầu tiên.
Điều này sẽ hoạt động như bạn mong đợi, Muhammed, tuy nhiên tôi không có 1000 hàng để kiểm tra điều này. Hiệu suất phải được chấp nhận như phần Với phần sẽ tạo ra một bảng tạm thời để làm việc.
Sử dụng một hình ảnh làm ví dụ của bạn bị hư câu hỏi của bạn nếu trình duyệt của bạn/proxy từ chối để hiển thị nội dung của bên thứ 3. Có lý do nào để không hiển thị bảng văn bản không? – Unsliced
Rất cám ơn vì đã đề cập đến điều này, Unsliced. Không có lý do cụ thể nào khi hiển thị câu hỏi trong hình ảnh. Tôi sẽ chăm sóc điều này trong tương lai. – Kashif