Tôi có một bảng có các cột sau đây.Cần trợ giúp Truy vấn SQL Server, Người mới
id,
compid(used to identify a piece of equipment),
startalarmdate,
endalarmdate
khi một phần của thiết bị đi vào báo động, tôi chèn compid và startalarmdate (với thời điểm hiện tại) vào bảng và khi thiết bị đi ra báo động I điền vào null trong cùng hàng đó trong cột endalarmdate với thời gian hiện tại.
vì vậy tôi kết thúc với một cái gì đó như thế này trong bảng
417,6,Sun Oct 30 18:48:17 CDT 2011,Mon Oct 31 09:49:21 CDT 2011
422,6,Mon Oct 31 10:19:19 CDT 2011,Mon Oct 31 12:19:22 CDT 2011
427,6,Mon Oct 31 20:19:56 CDT 2011,Tue Nov 01 09:50:59 CDT 2011
429,6,Tue Nov 01 21:51:41 CDT 2011,Wed Nov 02 09:52:37 CDT 2011
432,6,Wed Nov 02 21:23:23 CDT 2011,Fri Nov 04 16:26:29 CDT 2011
tôi đã có thể xây dựng một truy vấn mà mang lại cho tôi một tổng thời gian chết trong giờ đối với mỗi sự kiện, nhưng những gì tôi muốn làm bây giờ là xây dựng một truy vấn mang lại cho tôi tổng số giờ trong thời gian ngừng hoạt động cho mỗi ngày trong một tháng. Id giống như nó có phần biên dịch tất cả các cách bên trái, sau đó có mỗi ngày trong tháng ở bên phải của bản dịch trong một cột trên cùng một hàng. Id như những ngày không có thời gian chết để được null. Có thể làm điều đó với cách thiết lập bảng này không?
Câu hỏi: trong một ngày, tôi đoán đó là ngày bắt đầu có vấn đề ngay cả khi độ phân giải sau nửa đêm, phải không? – fge
Chắc chắn là có thể. Bạn đã thử cái gì? Bạn nên xem tài liệu cho DATEDIFF để bắt đầu. Ngoài ra, bạn sẽ cần phải quyết định phải làm gì với thời gian chết đi từ ngày này sang ngày khác. Điều đó làm cho mọi thứ phức tạp hơn, nhưng chắc chắn là có thể thực hiện được. – paulbailey