查询有关JOINS的HR模式

时间:2015-03-29 13:40:17

标签: sql oracle join

我正在HR数据库上使用Oracle 10g XE,该数据库是10g的一部分。

这是数据库中的departments表。

SQL>从部门中选择*;

DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID


       10 Administration                        200        1700
       20 Marketing                             201        1800
       30 Purchasing                            114        1700
       40 Human Resources                       203        2400
       50 Shipping                              121        1500
       60 IT                                    103        1400
       70 Public Relations                      204        2700
       80 Sales                                 145        2500
       90 Executive                             100        1700
      100 Finance                               108        1700
      110 Accounting                            205        1700
      120 Treasury                                         1700
      130 Corporate Tax                                    1700
      140 Control And Credit                               1700
      150 Shareholder Services                             1700
      160 Benefits                                         1700
      170 Manufacturing                                    1700
      180 Construction                                     1700
      190 Contracting                                      1700
      200 Operations                                       1700
      210 IT Support                                       1700
      220 NOC                                              1700
      230 IT Helpdesk                                      1700
      240 Government Sales                                 1700
      250 Retail Sales                                     1700
      260 Recruiting                                       1700
      270 Payroll                                          1700

选择了27行。

问题:

编写查询以显示部门明智的详细信息,包括经理的姓名,如果特定部门没有任何经理,则显示消息“尚未分配经理”。

此查询提供正确的结果:

select d.department_id,d.department_name,
case
when d.manager_id is null then nvl(to_char(d.manager_id),'No Manager Assigned yet')
when d.manager_id is not null then e.first_name||' '||e.last_name
end "Manager Name"
from departments d left outer join employees e
on d.department_id=e.department_id
where d.manager_id=e.employee_id or d.manager_id is null;

输出:

DEPARTMENT_ID DEPARTMENT_NAME经理姓名


       10 Administration                 Jennifer Whalen
       20 Marketing                      Michael Hartstein
       30 Purchasing                     Den Raphaely
       40 Human Resources                Susan Mavris
       50 Shipping                       Adam Fripp
       60 IT                             Alexander Hunold
       70 Public Relations               Hermann Baer
       80 Sales                          John Russell
       90 Executive                      Steven King
      100 Finance                        Nancy Greenberg
      110 Accounting                     Shelley Higgins
      120 Treasury                       No Manager Assigned yet
      130 Corporate Tax                  No Manager Assigned yet
      140 Control And Credit             No Manager Assigned yet
      150 Shareholder Services           No Manager Assigned yet
      160 Benefits                       No Manager Assigned yet
      170 Manufacturing                  No Manager Assigned yet
      180 Construction                   No Manager Assigned yet
      190 Contracting                    No Manager Assigned yet
      200 Operations                     No Manager Assigned yet
      210 IT Support                     No Manager Assigned yet
      220 NOC                            No Manager Assigned yet
      230 IT Helpdesk                    No Manager Assigned yet
      240 Government Sales               No Manager Assigned yet
      250 Retail Sales                   No Manager Assigned yet
      260 Recruiting                     No Manager Assigned yet
      270 Payroll                        No Manager Assigned yet

选择了27行。

但是这个查询没有:

select d.department_id,d.department_name,
case
when d.manager_id is null then nvl(to_char(d.manager_id),'No Manager Assigned yet')
when d.manager_id is not null then e.first_name||' '||e.last_name
end "Manager Name"
from departments d join employees e
on d.department_id=e.department_id
where d.manager_id=e.employee_id or d.manager_id is null;

输出:

DEPARTMENT_ID DEPARTMENT_NAME经理姓名


       90 Executive                      Steven King
       60 IT                             Alexander Hunold
      100 Finance                        Nancy Greenberg
       30 Purchasing                     Den Raphaely
       50 Shipping                       Adam Fripp
       80 Sales                          John Russell
       10 Administration                 Jennifer Whalen
       20 Marketing                      Michael Hartstein
       40 Human Resources                Susan Mavris
       70 Public Relations               Hermann Baer
      110 Accounting                     Shelley Higgins

选择了11行。

任何人都可以解释为什么外联接是特别需要这个吗?非常感谢您的帮助。

员工表中的数据:

SQL>从员工中选择*;

EMPLOYEE_ID FIRST_NAME LAST_NAME电子邮件PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID


    100 Steven               King                      SKING                     515.123.4567         17-JUN-87 AD_PRES         24000                                      90
    101 Neena                Kochhar                   NKOCHHAR                  515.123.4568         21-SEP-89 AD_VP           17000                       100            90
    102 Lex                  De Haan                   LDEHAAN                   515.123.4569         13-JAN-93 AD_VP           17000                       100            90
    103 Alexander            Hunold                    AHUNOLD                   590.423.4567         03-JAN-90 IT_PROG          9000                       102            60
    104 Bruce                Ernst                     BERNST                    590.423.4568         21-MAY-91 IT_PROG          6000                       103            60
    105 David                Austin                    DAUSTIN                   590.423.4569         25-JUN-97 IT_PROG          4800                       103            60
    106 Valli                Pataballa                 VPATABAL                  590.423.4560         05-FEB-98 IT_PROG          4800                       103            60
    107 Diana                Lorentz                   DLORENTZ                  590.423.5567         07-FEB-99 IT_PROG          4200                       103            60
    108 Nancy                Greenberg                 NGREENBE                  515.124.4569         17-AUG-94 FI_MGR          12000                       101           100
    109 Daniel               Faviet                    DFAVIET                   515.124.4169         16-AUG-94 FI_ACCOUNT       9000                       108           100
    110 John                 Chen                      JCHEN                     515.124.4269         28-SEP-97 FI_ACCOUNT       8200                       108           100
    111 Ismael               Sciarra                   ISCIARRA                  515.124.4369         30-SEP-97 FI_ACCOUNT       7700                       108           100
    112 Jose Manuel          Urman                     JMURMAN                   515.124.4469         07-MAR-98 FI_ACCOUNT       7800                       108           100
    113 Luis                 Popp                      LPOPP                     515.124.4567         07-DEC-99 FI_ACCOUNT       6900                       108           100
    114 Den                  Raphaely                  DRAPHEAL                  515.127.4561         07-DEC-94 PU_MAN          11000                       100            30
    115 Alexander            Khoo                      AKHOO                     515.127.4562         18-MAY-95 PU_CLERK         3100                       114            30
    116 Shelli               Baida                     SBAIDA                    515.127.4563         24-DEC-97 PU_CLERK         2900                       114            30
    117 Sigal                Tobias                    STOBIAS                   515.127.4564         24-JUL-97 PU_CLERK         2800                       114            30
    118 Guy                  Himuro                    GHIMURO                   515.127.4565         15-NOV-98 PU_CLERK         2600                       114            30
    119 Karen                Colmenares                KCOLMENA                  515.127.4566         10-AUG-99 PU_CLERK         2500                       114            30
    120 Matthew              Weiss                     MWEISS                    650.123.1234         18-JUL-96 ST_MAN           8000                       100            50
    121 Adam                 Fripp                     AFRIPP                    650.123.2234         10-APR-97 ST_MAN           8200                       100            50
    122 Payam                Kaufling                  PKAUFLIN                  650.123.3234         01-MAY-95 ST_MAN           7900                       100            50
    123 Shanta               Vollman                   SVOLLMAN                  650.123.4234         10-OCT-97 ST_MAN           6500                       100            50
    124 Kevin                Mourgos                   KMOURGOS                  650.123.5234         16-NOV-99 ST_MAN           5800                       100            50
    125 Julia                Nayer                     JNAYER                    650.124.1214         16-JUL-97 ST_CLERK         3200                       120            50
    126 Irene                Mikkilineni               IMIKKILI                  650.124.1224         28-SEP-98 ST_CLERK         2700                       120            50
    127 James                Landry                    JLANDRY                   650.124.1334         14-JAN-99 ST_CLERK         2400                       120            50
    128 Steven               Markle                    SMARKLE                   650.124.1434         08-MAR-00 ST_CLERK         2200                       120            50
    129 Laura                Bissot                    LBISSOT                   650.124.5234         20-AUG-97 ST_CLERK         3300                       121            50
    130 Mozhe                Atkinson                  MATKINSO                  650.124.6234         30-OCT-97 ST_CLERK         2800                       121            50
    131 James                Marlow                    JAMRLOW                   650.124.7234         16-FEB-97 ST_CLERK         2500                       121            50
    132 TJ                   Olson                     TJOLSON                   650.124.8234         10-APR-99 ST_CLERK         2100                       121            50
    133 Jason                Mallin                    JMALLIN                   650.127.1934         14-JUN-96 ST_CLERK         3300                       122            50
    134 Michael              Rogers                    MROGERS                   650.127.1834         26-AUG-98 ST_CLERK         2900                       122            50
    135 Ki                   Gee                       KGEE                      650.127.1734         12-DEC-99 ST_CLERK         2400                       122            50
    136 Hazel                Philtanker                HPHILTAN                  650.127.1634         06-FEB-00 ST_CLERK         2200                       122            50
    137 Renske               Ladwig                    RLADWIG                   650.121.1234         14-JUL-95 ST_CLERK         3600                       123            50
    138 Stephen              Stiles                    SSTILES                   650.121.2034         26-OCT-97 ST_CLERK         3200                       123            50
    139 John                 Seo                       JSEO                      650.121.2019         12-FEB-98 ST_CLERK         2700                       123            50
    140 Joshua               Patel                     JPATEL                    650.121.1834         06-APR-98 ST_CLERK         2500                       123            50
    141 Trenna               Rajs                      TRAJS                     650.121.8009         17-OCT-95 ST_CLERK         3500                       124            50
    142 Curtis               Davies                    CDAVIES                   650.121.2994         29-JAN-97 ST_CLERK         3100                       124            50
    143 Randall              Matos                     RMATOS                    650.121.2874         15-MAR-98 ST_CLERK         2600                       124            50
    144 Peter                Vargas                    PVARGAS                   650.121.2004         09-JUL-98 ST_CLERK         2500                       124            50
    145 John                 Russell                   JRUSSEL                   011.44.1344.429268   01-OCT-96 SA_MAN          14000             .4        100            80
    146 Karen                Partners                  KPARTNER                  011.44.1344.467268   05-JAN-97 SA_MAN          13500             .3        100            80
    147 Alberto              Errazuriz                 AERRAZUR                  011.44.1344.429278   10-MAR-97 SA_MAN          12000             .3        100            80
    148 Gerald               Cambrault                 GCAMBRAU                  011.44.1344.619268   15-OCT-99 SA_MAN          11000             .3        100            80
    149 Eleni                Zlotkey                   EZLOTKEY                  011.44.1344.429018   29-JAN-00 SA_MAN          10500             .2        100            80
    150 Peter                Tucker                    PTUCKER                   011.44.1344.129268   30-JAN-97 SA_REP          10000             .3        145            80
    151 David                Bernstein                 DBERNSTE                  011.44.1344.345268   24-MAR-97 SA_REP           9500            .25        145            80
    152 Peter                Hall                      PHALL                     011.44.1344.478968   20-AUG-97 SA_REP           9000            .25        145            80
    153 Christopher          Olsen                     COLSEN                    011.44.1344.498718   30-MAR-98 SA_REP           8000             .2        145            80
    154 Nanette              Cambrault                 NCAMBRAU                  011.44.1344.987668   09-DEC-98 SA_REP           7500             .2        145            80
    155 Oliver               Tuvault                   OTUVAULT                  011.44.1344.486508   23-NOV-99 SA_REP           7000            .15        145            80
    156 Janette              King                      JKING                     011.44.1345.429268   30-JAN-96 SA_REP          10000            .35        146            80
    157 Patrick              Sully                     PSULLY                    011.44.1345.929268   04-MAR-96 SA_REP           9500            .35        146            80
    158 Allan                McEwen                    AMCEWEN                   011.44.1345.829268   01-AUG-96 SA_REP           9000            .35        146            80
    159 Lindsey              Smith                     LSMITH                    011.44.1345.729268   10-MAR-97 SA_REP           8000             .3        146            80
    160 Louise               Doran                     LDORAN                    011.44.1345.629268   15-DEC-97 SA_REP           7500             .3        146            80
    161 Sarath               Sewall                    SSEWALL                   011.44.1345.529268   03-NOV-98 SA_REP           7000            .25        146            80
    162 Clara                Vishney                   CVISHNEY                  011.44.1346.129268   11-NOV-97 SA_REP          10500            .25        147            80
    163 Danielle             Greene                    DGREENE                   011.44.1346.229268   19-MAR-99 SA_REP           9500            .15        147            80
    164 Mattea               Marvins                   MMARVINS                  011.44.1346.329268   24-JAN-00 SA_REP           7200             .1        147            80
    165 David                Lee                       DLEE                      011.44.1346.529268   23-FEB-00 SA_REP           6800             .1        147            80
    166 Sundar               Ande                      SANDE                     011.44.1346.629268   24-MAR-00 SA_REP           6400             .1        147            80
    167 Amit                 Banda                     ABANDA                    011.44.1346.729268   21-APR-00 SA_REP           6200             .1        147            80
    168 Lisa                 Ozer                      LOZER                     011.44.1343.929268   11-MAR-97 SA_REP          11500            .25        148            80
    169 Harrison             Bloom                     HBLOOM                    011.44.1343.829268   23-MAR-98 SA_REP          10000             .2        148            80
    170 Tayler               Fox                       TFOX                      011.44.1343.729268   24-JAN-98 SA_REP           9600             .2        148            80
    171 William              Smith                     WSMITH                    011.44.1343.629268   23-FEB-99 SA_REP           7400            .15        148            80
    172 Elizabeth            Bates                     EBATES                    011.44.1343.529268   24-MAR-99 SA_REP           7300            .15        148            80
    173 Sundita              Kumar                     SKUMAR                    011.44.1343.329268   21-APR-00 SA_REP           6100             .1        148            80
    174 Ellen                Abel                      EABEL                     011.44.1644.429267   11-MAY-96 SA_REP          11000             .3        149            80
    175 Alyssa               Hutton                    AHUTTON                   011.44.1644.429266   19-MAR-97 SA_REP           8800            .25        149            80
    176 Jonathon             Taylor                    JTAYLOR                   011.44.1644.429265   24-MAR-98 SA_REP           8600             .2        149            80
    177 Jack                 Livingston                JLIVINGS                  011.44.1644.429264   23-APR-98 SA_REP           8400             .2        149            80
    178 Kimberely            Grant                     KGRANT                    011.44.1644.429263   24-MAY-99 SA_REP           7000            .15        149
    179 Charles              Johnson                   CJOHNSON                  011.44.1644.429262   04-JAN-00 SA_REP           6200             .1        149            80
    180 Winston              Taylor                    WTAYLOR                   650.507.9876         24-JAN-98 SH_CLERK         3200                       120            50
    181 Jean                 Fleaur                    JFLEAUR                   650.507.9877         23-FEB-98 SH_CLERK         3100                       120            50
    182 Martha               Sullivan                  MSULLIVA                  650.507.9878         21-JUN-99 SH_CLERK         2500                       120            50
    183 Girard               Geoni                     GGEONI                    650.507.9879         03-FEB-00 SH_CLERK         2800                       120            50
    184 Nandita              Sarchand                  NSARCHAN                  650.509.1876         27-JAN-96 SH_CLERK         4200                       121            50
    185 Alexis               Bull                      ABULL                     650.509.2876         20-FEB-97 SH_CLERK         4100                       121            50
    186 Julia                Dellinger                 JDELLING                  650.509.3876         24-JUN-98 SH_CLERK         3400                       121            50
    187 Anthony              Cabrio                    ACABRIO                   650.509.4876         07-FEB-99 SH_CLERK         3000                       121            50
    188 Kelly                Chung                     KCHUNG                    650.505.1876         14-JUN-97 SH_CLERK         3800                       122            50
    189 Jennifer             Dilly                     JDILLY                    650.505.2876         13-AUG-97 SH_CLERK         3600                       122            50
    190 Timothy              Gates                     TGATES                    650.505.3876         11-JUL-98 SH_CLERK         2900                       122            50
    191 Randall              Perkins                   RPERKINS                  650.505.4876         19-DEC-99 SH_CLERK         2500                       122            50
    192 Sarah                Bell                      SBELL                     650.501.1876         04-FEB-96 SH_CLERK         4000                       123            50
    193 Britney              Everett                   BEVERETT                  650.501.2876         03-MAR-97 SH_CLERK         3900                       123            50
    194 Samuel               McCain                    SMCCAIN                   650.501.3876         01-JUL-98 SH_CLERK         3200                       123            50
    195 Vance                Jones                     VJONES                    650.501.4876         17-MAR-99 SH_CLERK         2800                       123            50
    196 Alana                Walsh                     AWALSH                    650.507.9811         24-APR-98 SH_CLERK         3100                       124            50
    197 Kevin                Feeney                    KFEENEY                   650.507.9822         23-MAY-98 SH_CLERK         3000                       124            50
    198 Donald               OConnell                  DOCONNEL                  650.507.9833         21-JUN-99 SH_CLERK         2600                       124            50
    199 Douglas              Grant                     DGRANT                    650.507.9844         13-JAN-00 SH_CLERK         2600                       124            50
    200 Jennifer             Whalen                    JWHALEN                   515.123.4444         17-SEP-87 AD_ASST          4400                       101            10
    201 Michael              Hartstein                 MHARTSTE                  515.123.5555         17-FEB-96 MK_MAN          13000                       100            20
    202 Pat                  Fay                       PFAY                      603.123.6666         17-AUG-97 MK_REP           6000                       201            20
    203 Susan                Mavris                    SMAVRIS                   515.123.7777         07-JUN-94 HR_REP           6500                       101            40
    204 Hermann              Baer                      HBAER                     515.123.8888         07-JUN-94 PR_REP          10000                       101            70
    205 Shelley              Higgins                   SHIGGINS                  515.123.8080         07-JUN-94 AC_MGR          12000                       101           110
    206 William              Gietz                     WGIETZ                    515.123.8181         07-JUN-94 AC_ACCOUNT       8300                       205           110

选择了107行。

0 个答案:

没有答案