我整天都在编码这个最后一个问题,明天将为我的SQL Server数据库类编写该文件。
我应该创建一个CTE,它将创建一个临时表,其中包含来自Employee
表的所有女性员工的业务代表和性别。然后返回businessentityid&来自CTE的性别以及人员类型为“EM”的人员表中的员工姓名,员工姓氏和人员类型
我的代码我只是简单地将所有性别标签转换为F并将PersonType更改为EM,这在我从头开始的次数几乎变得滑稽。
WITH cte_name2 AS
(
SELECT
FirstName, LastName, PersonType
FROM
Person.Person
), cte_name1 AS
(
SELECT
Gender, BusinessEntityID
FROM
HumanResources.Employee
)
SELECT
cte_name1_1.BusinessEntityID, cte_name1_1.Gender,
cte_name2_1.FirstName, cte_name2_1.LastName, cte_name2_1.PersonType
FROM
cte_name1 AS cte_name1_1
CROSS JOIN
cte_name2 AS cte_name2_1
WHERE
(NOT (cte_name1_1.Gender LIKE N'M'))
AND (cte_name2_1.PersonType = N'EM')
谁能告诉我我做错了什么?谢谢。
答案 0 :(得分:2)
正确的代码如下......
WITH cte_name2 AS
(
SELECT
BusinessEntityID, FirstName, LastName, PersonType
FROM
Person.Person
), cte_name1 AS
(
SELECT
Gender, BusinessEntityID
FROM
HumanResources.Employee
)
SELECT
cte_name1_1.BusinessEntityID, cte_name1_1.Gender,
cte_name2_1.FirstName, cte_name2_1.LastName, cte_name2_1.PersonType
FROM
cte_name1 AS cte_name1_1
INNER JOIN
cte_name2 AS cte_name2_1 ON cte_name2_1.BusinessEntityID = cte_name1_1.BusinessEntityID
WHERE
(cte_name1_1.Gender NOT LIKE N'M')
AND (cte_name2_1.PersonType = N'EM')
原来我非常接近,Jayvee帮了我一点!