Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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的所有类型_Sql_Database_Oracle - Fatal编程技术网

给定客户端SQL的所有类型

给定客户端SQL的所有类型,sql,database,oracle,Sql,Database,Oracle,好的,我有一个这样的数据库设置: Client {Clientt#, FirstName, LastName, Email, city}; RType {TName, Price, TRooms}; Location {Confirm#, Arrival, Departure, Origin, Client# (references Guest), Type (references RoomType)} 我几乎需要创建SQL语句,该语句为我提供所有类型的客户机的列表 我写了这封信,但不起作用

好的,我有一个这样的数据库设置:

Client {Clientt#, FirstName, LastName, Email, city};
RType {TName, Price, TRooms};
Location {Confirm#, Arrival, Departure, Origin, Client# (references Guest), Type (references RoomType)} 
我几乎需要创建SQL语句,该语句为我提供所有类型的客户机的列表

我写了这封信,但不起作用:

SELECT Client#, FirstName, LastName, Type
FROM Client, Location
WHERE Client.Client# = Location.Client# and Location.Type = (select count(DISTINCT TName) from RType);
有人能帮我吗?

用这个:

SELECT Client#, FirstName, LastName, Type
FROM Client, Location
WHERE Client.Client# = Location.Client# and 
Location.Type IN (select DISTINCT TName from RType)

我会使用
having
子句来实现这一点。问题是:哪些客户端具有与RType表中相同数量的位置?这假定所有Location.type都在此表中

SELECT Client#
FROM Location l
group by Client#
having count(distinct l.type) = (select count(DISTINCT TName) from RType)

如果您真的需要,您可以加入客户端的附加信息。

COUNT函数将返回您在其中有多少类型的计数,因此除非Location.Type=4,否则这将不起作用。删除计数或按如下方式加入表:

SELECT t1.Client#, t1.FirstName, t1.LastName, t2.Type
FROM Client t1
    INNER JOIN Location t2
        ON t1.Client# = t2.Client#