表1:
部门 姓名 职位
营销部 小李 经理
营销部 小张 经理
营销部 小王 职员
研发部 小郭 经理
研发部 小陈 职员
研发部 小飞 职员
研发部 小丘 职员要得到:部门 经理 职员
营销部 小李 小张
营销部 小王
研发部 小郭 小陈
研发部 小飞
研发部 小丘这样的表怎么查询得到?我用的是Access数据表,用ADOQuest查询。
部门 姓名 职位
营销部 小李 经理
营销部 小张 经理
营销部 小王 职员
研发部 小郭 经理
研发部 小陈 职员
研发部 小飞 职员
研发部 小丘 职员要得到:部门 经理 职员
营销部 小李 小张
营销部 小王
研发部 小郭 小陈
研发部 小飞
研发部 小丘这样的表怎么查询得到?我用的是Access数据表,用ADOQuest查询。
FROM [SELECT 部门,姓名 as 经理
FROM 表1 where 职位='经理']. AS Temp1, [SELECT 部门,姓名 as 职员
FROM 表1 where 职位='职员']. AS Temp2
WHERE temp1.部门=temp2.部门;
select temp1.部门,经理,职员 from (SELECT 部门,姓名 as 经理
FROM 表1 where 职位='经理') as Temp1 INNER JOIN (SELECT 部门,姓名 as 职员
FROM 表1 where 职位='职员') as Temp2 ON TEMP1.部门=temp2.部门;
FROM [SELECT 部门,姓名 as 经理
FROM 表1 where 职位='经理']. AS Temp1, [SELECT 部门,姓名 as 职员
FROM 表1 where 职位='职员']. AS Temp2
WHERE temp1.部门=temp2.部门;这种写法行不通,好像还差点什么,和我写的得出的结果一样,是个全排列。
还是在程序循环建立吧!
如果得到下面的表可以(且每个部门只有一个经理)部门 经理 职员
营销部 小李 小张
营销部 小李 小王
研发部 小郭 小陈
研发部 小郭 小飞
研发部 小郭 小丘
营销部 小李 小张
营销部 小王
合计 2人 1人部门 经理 职员
研发部 小郭 小陈
研发部 小飞
研发部 小丘
合计 1人 2人
你们说的那个我也能写出来,但不合要求。