Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询、连接、SQL server示例(Concert)和两个相关表_Sql_Sql Server - Fatal编程技术网

查询、连接、SQL server示例(Concert)和两个相关表

查询、连接、SQL server示例(Concert)和两个相关表,sql,sql-server,Sql,Sql Server,我不知道谁应该归还我以前写的东西,道歉。这应该返回预期的结果。 ;with Cte1 AS ( select C.CID, P.Name AS PerformerName, H.Name AS HallName, H.Capacity, H.HID from @Performer P inner join @Concert C on C.PID = P.PID inner join @Hall H on H.HID = C.HID ) , Cte2 AS ( select C.

我不知道谁应该归还我以前写的东西,道歉。这应该返回预期的结果。

;with Cte1 AS (
select C.CID, P.Name AS PerformerName, H.Name AS HallName, H.Capacity, H.HID
from @Performer P 
    inner join @Concert C on C.PID = P.PID
    inner join @Hall H on H.HID = C.HID
)
, Cte2 AS (
select C.CID, H.HID, COUNT(*) SellCount
from @Concert C 
    inner join @Hall H on H.HID = C.HID
    inner join @Tickets T on T.CID = C.CID
group by C.CID, H.HID
)
select Cte1.CID, Cte1.PerformerName, Cte1.HallName, Cte2.SellCount
from Cte1 inner join Cte2 on Cte2.CID = Cte1.CID AND Cte2.HID = Cte1.HID
where Cte1.Capacity = Cte2.SellCount

这将返回预期的结果

;with Cte1 AS (
select C.CID, P.Name AS PerformerName, H.Name AS HallName, H.Capacity, H.HID
from @Performer P 
    inner join @Concert C on C.PID = P.PID
    inner join @Hall H on H.HID = C.HID
)
, Cte2 AS (
select C.CID, H.HID, COUNT(*) SellCount
from @Concert C 
    inner join @Hall H on H.HID = C.HID
    inner join @Tickets T on T.CID = C.CID
group by C.CID, H.HID
)
select Cte1.CID, Cte1.PerformerName, Cte1.HallName, Cte2.SellCount
from Cte1 inner join Cte2 on Cte2.CID = Cte1.CID AND Cte2.HID = Cte1.HID
where Cte1.Capacity = Cte2.SellCount

使用
TOP

SELECT TOP 1
    PID, NAME, AGE
FROM (
    SELECT
        p.*, h.HID
    FROM Performer p
    INNER JOIN Concert c
        ON c.PID = p.PID
    INNER JOIN Hall h
        ON h.HID = c.HID
    INNER JOIN Tickets t
        ON t.CID = c.CID
    GROUP BY p.PID, p.NAME, p.AGE, h.HID, h.CAPACITY
    HAVING COUNT(t.TID) = h.CAPACITY
) t
GROUP BY PID, NAME, AGE
ORDER BY COUNT(*) DESC

使用
TOP

SELECT TOP 1
    PID, NAME, AGE
FROM (
    SELECT
        p.*, h.HID
    FROM Performer p
    INNER JOIN Concert c
        ON c.PID = p.PID
    INNER JOIN Hall h
        ON h.HID = c.HID
    INNER JOIN Tickets t
        ON t.CID = c.CID
    GROUP BY p.PID, p.NAME, p.AGE, h.HID, h.CAPACITY
    HAVING COUNT(t.TID) = h.CAPACITY
) t
GROUP BY PID, NAME, AGE
ORDER BY COUNT(*) DESC

这个顶级函数对所有SQL平台通用吗?它意味着什么?这个顶级函数对所有SQL平台通用吗?它意味着什么?