Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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

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
Mysql SQL子查询问题3_Mysql_Sql_Sql Server_Sqlite - Fatal编程技术网

Mysql SQL子查询问题3

Mysql SQL子查询问题3,mysql,sql,sql-server,sqlite,Mysql,Sql,Sql Server,Sqlite,我的SQL代码有问题 当我运行这段代码时,我得到这样的错误消息: ** 子查询返回了多个值。这是不允许的,因为 子查询后面是=,!=,=或者当子查询用作 表情 ** 我不知道如何更正此代码以运行它 有人能帮我看看吗 谢谢你的帮助 SELECT dbo.FRA$.[GUID], dbo.FRA$.[Last Name], dbo.FRA$.[First Name], dbo.FRA$.[HR Manager Last Name], dbo.FRA$.[HR Manager First Na

我的SQL代码有问题

当我运行这段代码时,我得到这样的错误消息:

**

子查询返回了多个值。这是不允许的,因为 子查询后面是=,!=,=或者当子查询用作 表情

**

我不知道如何更正此代码以运行它

有人能帮我看看吗

谢谢你的帮助

SELECT dbo.FRA$.[GUID], dbo.FRA$.[Last Name], 

dbo.FRA$.[First Name], dbo.FRA$.[HR Manager Last Name], 

dbo.FRA$.[HR Manager First Name], (SELECT dbo.FRA$.[Business Email Address] FROM dbo.FRA$ t WHERE t.[HR Manager ID] = t.[Emplid]) AS [HR Manager E-Mail],

dbo.LOC.Descr AS [COMPANY NAME], dbo.FRA$.[Location Code],

dbo.LOC.[ADDRESS], dbo.LOC.Postal, dbo.LOC.City, dbo.FRA$.[National ID], dbo.FRA$.[Current Employee Class Desc] AS [Current Empl Class],

dbo.FRA$.[Contract type description] AS [CONTRACT TYPE], dbo.FRA$.[Business Title],

CASE dbo.FRA$.[Current Employee Class Desc]
WHEN 'Operator' THEN 10
WHEN 'Clerical worker' THEN 22
WHEN 'Technician' THEN 32
WHEN 'Supervisor' THEN 33
WHEN 'Manager&Engineer' THEN 54
END AS [Salary brutto],

FORMAT(dbo.FRA$.[Birthdate],'yyyy-MM-dd') AS [Birth Date], FORMAT(dbo.FRA$.[Last Start Date],'yyyy-MM-dd') AS [Hire Date]

FROM dbo.FRA$  

INNER JOIN dbo.LOC 

ON dbo.FRA$.[Location Code] = dbo.LOC.[Location]

WHERE [HR Status] IN ('International Assignment','Active','Leave of Absence');
试着替换

SELECT dbo.FRA$.[Business Email Address] FROM dbo.FRA$ t WHERE t.[HR Manager ID] = t.[Emplid]


从子查询返回的行中只取一行

您好,谢谢您的帮助。我试过了,结果代码显示的是员工的电子邮件,而不是人力资源经理的电子邮件地址?你好,米雷克。我编辑了我的答案。您应该将子查询表中的t[Emplid]绑定到Main表中的[HR Manager ID]。只要去掉t。或者最好为主表创建一个别名。您好,Dmitry,我已更正为从dbo.FRA$t中选择排名前1的dbo.FRA$.[Business Email Address],其中dbo.FRA$.[HR Manager ID]=t.[Emplid]作为[HR Manager E-Mail],但仍然从员工而不是人力资源经理那里收到电子邮件?甚至问题可以在SELECT dbo.FRA$.[Business Email Address]中。可能您需要使用别名t来选择t.[Business Email Address]Mirek,我做了一些编辑,最后尝试从dbo.FRA$t中选择TOP 1 t.[Business Email Address],其中[HR Manager ID]=t.[Emplid],并且此查询应该在MySQL、MS SQL Server和Sqlite上运行???
SELECT TOP 1 t.[Business Email Address] FROM dbo.FRA$ t WHERE [HR Manager ID] = t.[Emplid]