Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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
关于2列和单表的简单sql查询_Sql_Oracle - Fatal编程技术网

关于2列和单表的简单sql查询

关于2列和单表的简单sql查询,sql,oracle,Sql,Oracle,表名doctor\u dtl 问题:多次插入相同的医生名称,并针对所有相同的名称生成多个医生代码,因此医生名称重复,但这些医生代码不同。我需要一个查询,可以在其中显示所有重复的医生名称和所有医生代码? 例如: john doc0001 john doc0010 amit doc0006 amit doc1000 amit doc1010 我希望显示这种类型的输出您可以使用它 SELECT doc

表名doctor\u dtl

问题:多次插入相同的医生名称,并针对所有相同的名称生成多个医生代码,因此医生名称重复,但这些医生代码不同。我需要一个查询,可以在其中显示所有重复的医生名称和所有医生代码? 例如:

         john doc0001
         john doc0010
         amit doc0006
         amit doc1000
         amit doc1010
我希望显示这种类型的输出

您可以使用它

SELECT 
    doc_code,
    doctor_name 
FROM doctor_dtl
WHERE doctor_name IN (
    SELECT 
    doctor_name
    FROM doctor_dtl
    GROUP BY doctor_name
    HAVING COUNT(*) > 1)
你可以用它

SELECT 
    doc_code,
    doctor_name 
FROM doctor_dtl
WHERE doctor_name IN (
    SELECT 
    doctor_name
    FROM doctor_dtl
    GROUP BY doctor_name
    HAVING COUNT(*) > 1)

如果您使用的是SQL Server,这里有一种方法


如果您使用的是SQL Server,这里有一种方法


ORA-00900:在group bymy查询中显示的SQL语句无效select a11.DOC\u ACT\u NAME,a11.DOC\u CD from RCP\u DOCTOR\u DTL\u MST a11 join select DOC\u ACT\u NAME,countDOC\u ACT\u NAME from RCP\u DOCTOR\u DTL\u MST group by DOC\u ACT\u NAME具有countDOC\u ACT\u NAME>1 a12在a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u名称组上按a11.DOC\u ACT\u ACT\u名称,a11.DOC_CD@SHOWMIKSETTA:-请删除位于having和count之间的左括号,也可以删除a12之后的join关键字,因为它已经在a11之后。从RCP\U DOCUR\U DTL\U MST a11 join select DOC\U ACT\U NAME中选择a11.DOC\U CD,countDOC\u ACT\u NAME=a12.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME=a11.DOC\u ACT\u NAME Group by a11.DOC\u ACT\u NAME,a11.DOC\u CD选择a11.DOC\u ACT\u NAME,a11.DOC\u CD从RCP\u DOCTOR\u DTL\u MST a11加入选择DOC\u ACT\u NAME,countDOC\u ACT\u NAME=a12.DOC\u ACT\u NAME=a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME Group by a11.DOC\u ACT\u NAME组by a11.DOC\u NAME,a11.DOC\u CDORA-00900:组上显示的无效SQL语句by我的查询选择a11.DOC\u ACT\u NAME,从RCP\u DOC\u DTL\u MST a11加入选择DOC\u ACT\u NAME,countDOC\u ACT\u NAME来自RCP\u DOCTOR\u DTL\u MST组,按countDOC\u ACT\u NAME>1 a12的DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME组,按a11.DOC\u ACT\u NAME,a11.DOC_CD@SHOWMIKSETTA:-请删除位于having和count之间的左括号,并删除a12后面的join关键字,因为它已经在a11.select a11.DOC\u ACT\u NAME、a11.DOC\u CD from RCP\u DOCTOR\u DTL\u MST a11 join select DOC\u ACT\u NAME、countDOC\u ACT\u NAME from RCP\u DOCTOR\u DTL\u MST Group by DOC\u ACT\u NAME具有countDOC\u ACT\u NAME>1的DOC\u CD、a12 join on a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME组by a11.DOC\u,a11.DOC\u CD from RCP\u DOCTOR\u DTL\u MST a11 join select DOC\u ACT\u NAME,countDOC\u ACT\u NAME from RCP\u DOCTOR\u DTL\u MST Group by DOC\u ACT\u NAME在a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME分组by a11.DOC\u ACT\u NAME,a11.DOC\u CDORA-00923:在[Count]上预期光标所在的位置未找到from关键字ORA-00923:在[Count]上的expectedcursor处未找到FROM关键字
select a11.doctor_name, a11.doc_code 
from doctor_dtl a11 join (select
doctor_name, count(doctor_name)  from doctor_dtl Group by doctor_name having
count(doctor_name) > 1  ) a12 on a11.doctor_name = a12.doctor_name group
by a11.doctor_name, a11.doc_code
SELECT doc_code,
       doctor_name
FROM
(
    SELECT doc_code,
           doctor_name,
           COUNT(doctor_name) OVER(PARTITION BY doctor_name) [Count]
    FROM <table_name>
) a
WHERE [Count] > 1;
doc_code    doctor_name
doc0006     amit
doc1000     amit
doc1010     amit
doc0001     john
doc0010     john