[英]SQL Hide/Show rows based on row count from another table
我有一個SQL問題。 我有兩個表, tableA
具有4條記錄, tableB
有0條記錄的權利,但會超過200個總記錄。 我想知道如果tableB
在200條記錄以下,是否可以隱藏tableA
的最后兩條記錄?
到目前為止,我得到的非常簡單
SELECT
id, dateSlot, timeSlot
FROM
tableA a
INNER JOIN
tableB b ON a.id = b.dateTimeSlotId;
我只是不知道如何基於另一個表的總記錄來隱藏記錄。
有人可以幫忙嗎?
這只是一個主意。 如果表不對稱,則需要改進邏輯。
declare @tableA table (id int)
declare @tableB table (dateTimeSlotId int , dateSlot date, timeSlot time)
insert @tableA values (1),(2),(3),(4),(5),(6),(7)
insert @tableB values
(1,'20170801', '00:00'),
(2,'20170802', '00:01'),
(3,'20170803', '00:02'),
(4,'20170804', '00:03'),
(5,'20170805', '00:04'),
(6,'20170806', '00:05'),
(7,'20170807', '00:06')
;with cte as(
SELECT ROW_NUMBER() over (order by id) rNumber, id, dateSlot, timeSlot
FROM @tableA a INNER JOIN
@tableB b
ON a.id = b.dateTimeSlotId)
SELECT id, dateSlot, timeSlot
FROM cte where rNumber <= (SELECT case when Count(1) >= 200 then Count(1) -2 else Count(1) end from @tableB)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.