如何在Oracle SQL查询中使用“AND”

lf3rwulv  于 2023-05-22  发布在  Oracle
关注(0)|答案(1)|浏览(115)

我正在学习,我被困在这个练习中。我只是不明白为什么结果会不同,哪种方法是正确的。
我有这些表及其属性:
departamentos:科迪戈县
empleados:codigo,nombre,hijos,retencion,cuenta,fnacimiento
just_nominas:输入,输入,描述,代码_emp
线:数字,悬臂,基础,分量,命令,代码_emp
工作:cod_emp,cod_dep,funcion
英语:
表***“部门”***:
属性:

**编码:**代表部门的唯一编码。**名称:**表示部门名称。

此表存储有关组织中存在的部门的信息
表***“员工”***:

属性:
**编码:**代表员工的唯一编码。
**姓名:**为员工姓名。
**子女:**指定员工的子女数量。
**预扣:**表示员工工资的预扣。
**账户:**代表员工的银行账号。
**Fnacimiento:**表示员工的出生日期。

此表包含员工的信息,例如他们的个人数据、财务信息和其他相关详细信息。
表***“just_payroll”***:

属性:
**月份:**表示工资单对应的月份。
**会计年度:**表示工资单对应的年度或会计年度。
**收入:**指定工资单中的收入。
**折扣:**表示适用于工资单的折扣。
**Cod_emp:**表示工资单所属员工的编码。

此表存储工资单数据,包括收入、扣减额以及与相应员工的关联。
表***“行”***:

属性:
**编号:**表示行号。
**数量:**表示该行关联的数量。
**基数:**指定计算基数。
**百分比:**表示应用的百分比。
**月份:**表示该行对应的月份。
**年度:**表示该行对应的年度或会计年度。
**Cod_emp:**代表该行所属职员的编码。

此表存储有关与工资单关联的行的详细信息,包括金额、计算基数和应用百分比等详细信息。
表***“工作”***:

属性:
**Cod_emp:**代表员工的编码。
**Cod_dep:**表示部门的编码。
**职能:**表示员工在部门中的职能或角色。

此表建立了员工和部门之间的关系,指明哪些员工在哪些部门工作,执行哪些职能。
这些表一起允许存储与部门、员工、工资单和关联行相关的数据,并建立这些数据之间的关系。
这个问题是这样告诉我们的:员工姓名和按姓名分组的总收入
我试着这样做查询:

SELECT NOMBRE,
       SUM(CANTIDAD)
FROM   EMPLEADOS A
       JOIN JUST_NOMINAS B ON (A.CODIGO=B.COD_EMP)
       JOIN LINEAS C ON (B.COD_EMP=C.COD_EMP)
GROUP BY NOMBRE;

但一位同事告诉我,不是这样的,而是这样的:

SELECT E.NOMBRE,
       SUM(L.CANTIDAD) AS INGRESOS_TOTALES
FROM   EMPLEADOS E
       JOIN JUST_NOMINAS J ON E.CODIGO = J.COD_EMP
       JOIN LINEAS L ON J.MES = L.MES
                     AND J.EJERCICIO = L.EJERCICIO
                     AND J.COD_EMP = L.COD_EMP
GROUP BY E.NOMBRE;

结果变化很大,例如,员工1给我:16000
而对他来说,结果是4000
我想知道是否有必要使用那些“和”以及为什么。

测试脚本:

CREATE TABLE empleados (
        codigo      NUMBER(5,0),
        nombre      VARCHAR2(30) NOT NULL,
        hijos       NUMBER(2,0) NOT NULL,
        retencion   NUMBER(2,0) NOT NULL,
        cuenta      CHAR(20) NOT NULL UNIQUE,
        PRIMARY KEY (codigo));
    CREATE TABLE departamentos (
        codigo      NUMBER(5,0),
        nombre      VARCHAR2(20) NOT NULL UNIQUE,
        PRIMARY KEY (codigo));
    CREATE TABLE trabajan (
        cod_emp     NUMBER(5,0),
        cod_dep     NUMBER(5,0),
        funcion     VARCHAR2(30) NOT NULL,
        PRIMARY KEY (cod_emp, cod_dep),
        FOREIGN KEY (cod_emp) REFERENCES empleados(codigo),
        FOREIGN KEY (cod_dep) REFERENCES departamentos(codigo));
    CREATE TABLE just_nominas (
        mes     NUMBER(2,0),
        ejercicio   NUMBER(4,0),
        ingreso     NUMBER(8,0) NOT NULL,
        descuento   NUMBER(8,0) NOT NULL,
        cod_emp     NUMBER(5,0),
        PRIMARY KEY (mes, ejercicio, cod_emp),
        FOREIGN KEY (cod_emp) REFERENCES empleados(codigo));
    CREATE TABLE lineas (
        numero      NUMBER(5,0),
        cantidad    NUMBER(8,0) NOT NULL,
        base        NUMBER(8,0),
        porcentaje  NUMBER(2,0),
        mes     NUMBER(2,0),
        ejercicio   NUMBER(4,0),
        cod_emp     NUMBER(5,0),
        PRIMARY KEY (numero, mes, ejercicio, cod_emp),
        FOREIGN KEY (mes, ejercicio, cod_emp) REFERENCES just_nominas(mes, ejercicio, cod_emp));
    
   
   //empleados
    INSERT INTO empleados VALUES (00011, 'Juan Ignacio Martinez', 0, 10, '12341234121234567890');
    INSERT INTO empleados VALUES (00001, 'José Luis Pérez', 2, 12, '12342233121122334455');
    INSERT INTO empleados VALUES (02341, 'Fernando Romero Díaz', 1, 8, '21341234560987654321');
    INSERT INTO empleados VALUES (11223, 'Manuel Lopez Marín', 0, 10, '55443322110099887766');
    INSERT INTO empleados VALUES (67890, 'Alfonso Gutierrez Lopez', 1, 12, '12563478001234567890');
    INSERT INTO empleados VALUES (00111, 'Encarna Lopez Lopez', 0, 10, '99118822773344665500');
    INSERT INTO empleados VALUES (02031, 'Ines Montero Zafra', 1, 8, '42341534129234567890');
    INSERT INTO empleados VALUES (09876, 'Rosa Lorite Lopez', 0, 10, '52341234521214567890');
    INSERT INTO empleados VALUES (96352, 'Lola Martinez Contreras', 1, 11, '22341224121224567820');
    INSERT INTO empleados VALUES (76543, 'Francisca Colate Gonzalez', 3, 7, '12343234121334567893');
    INSERT INTO empleados VALUES (73152, 'María Pascual Rojo', 3, 7, '12351234151234567590');
    INSERT INTO empleados VALUES (64738, 'Andrés Morales Martín', 3, 7, '22341154116231563690');
    
    //departamentos
    INSERT INTO departamentos VALUES (00001, 'Ventas');
    INSERT INTO departamentos VALUES (00002, 'Compras');
    INSERT INTO departamentos VALUES (00003, 'Marketing');
    INSERT INTO departamentos VALUES (00004, 'Recursos Humanos');
    INSERT INTO departamentos VALUES (00005, 'Administración');
    INSERT INTO departamentos VALUES (00006, 'Dirección');
    
    //trabajan
    INSERT INTO trabajan VALUES (00001, 00001, 'Vendedor');
    INSERT INTO trabajan VALUES (00001, 00003, 'Diseñador');
    INSERT INTO trabajan VALUES (02341, 00005, 'Administrativo');
    INSERT INTO trabajan VALUES (11223, 00006, 'Asesor Dirección');
    INSERT INTO trabajan VALUES (11223, 00005, 'Administrativo');
    INSERT INTO trabajan VALUES (11223, 00004, 'Selección de Personal');
    INSERT INTO trabajan VALUES (67890, 00002, 'Gestor de compras');
    INSERT INTO trabajan VALUES (00111, 00001, 'Vendedor');
    INSERT INTO trabajan VALUES (02031, 00001, 'Vendedor');
    INSERT INTO trabajan VALUES (09876, 00006, 'Director');
    INSERT INTO trabajan VALUES (96352, 00003, 'Publicista');
    INSERT INTO trabajan VALUES (96352, 00004, 'Encuestador');
    INSERT INTO trabajan VALUES (96352, 00005, 'Secretaria de Dirección');
    INSERT INTO trabajan VALUES (76543, 00001, 'Vendedor');
    INSERT INTO trabajan VALUES (73152, 00005, 'Administrativo');
    INSERT INTO trabajan VALUES (73152, 00003, 'Publicista');
    INSERT INTO trabajan VALUES (64738, 00001, 'Vendedor');
    INSERT INTO trabajan VALUES (64738, 00004, 'Selección de Personal');
    INSERT INTO trabajan VALUES (64738, 00002, 'Gestor de compras');
    INSERT INTO trabajan VALUES (64738, 00003, 'Diseñador');
    INSERT INTO trabajan VALUES (00011, 00003, 'Diseñador');
    
    //justificantes de nóminas
    
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 00001);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 00001);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 00001);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 00001);
    INSERT INTO just_nominas VALUES (10, 2006, 1500, 300, 02341);
    INSERT INTO just_nominas VALUES (11, 2006, 1500, 300, 02341);
    INSERT INTO just_nominas VALUES (12, 2006, 1500, 300, 02341);
    INSERT INTO just_nominas VALUES (01, 2007, 1500, 300, 02341);
    INSERT INTO just_nominas VALUES (10, 2006, 1000, 100, 11223);
    INSERT INTO just_nominas VALUES (11, 2006, 1000, 100, 11223);
    INSERT INTO just_nominas VALUES (12, 2006, 1000, 100, 11223);
    INSERT INTO just_nominas VALUES (01, 2007, 1000, 100, 11223);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 67890);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 67890);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 67890);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 67890);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 00111);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 00111);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 00111);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 00111);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 02031);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 02031);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 02031);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 02031);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 09876);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 09876);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 09876);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 09876);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 96352);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 96352);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 96352);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 96352);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 76543);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 76543);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 76543);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 76543);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 73152);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 73152);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 73152);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 73152);
    INSERT INTO just_nominas VALUES (10, 2006, 1200, 200, 64738);
    INSERT INTO just_nominas VALUES (11, 2006, 1200, 200, 64738);
    INSERT INTO just_nominas VALUES (12, 2006, 1200, 200, 64738);
    INSERT INTO just_nominas VALUES (01, 2007, 1200, 200, 64738);
    
    //lineas
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 00001);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 00001);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 00001);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 00001);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 00001);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 00001);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 00001);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 00001);
    INSERT INTO lineas VALUES (00001, 1500, NULL, NULL, 10, 2006, 02341);
    INSERT INTO lineas VALUES (00002, -300, 1200, 10, 10, 2006, 02341);
    INSERT INTO lineas VALUES (00001, 1500, NULL, NULL, 11, 2006, 02341);
    INSERT INTO lineas VALUES (00002, -300, 1200, 10, 11, 2006, 02341);
    INSERT INTO lineas VALUES (00001, 1500, NULL, NULL, 12, 2006, 02341);
    INSERT INTO lineas VALUES (00002, -300, 1200, 10, 12, 2006, 02341);
    INSERT INTO lineas VALUES (00001, 1500, NULL, NULL, 01, 2007, 02341);
    INSERT INTO lineas VALUES (00002, -300, 1200, 10, 01, 2007, 02341);
    INSERT INTO lineas VALUES (00001, 1000, NULL, NULL, 10, 2006, 11223);
    INSERT INTO lineas VALUES (00002, -100, 1200, 10, 10, 2006, 11223);
    INSERT INTO lineas VALUES (00001, 1000, NULL, NULL, 11, 2006, 11223);
    INSERT INTO lineas VALUES (00002, -100, 1200, 10, 11, 2006, 11223);
    INSERT INTO lineas VALUES (00001, 1000, NULL, NULL, 12, 2006, 11223);
    INSERT INTO lineas VALUES (00002, -100, 1200, 10, 12, 2006, 11223);
    INSERT INTO lineas VALUES (00001, 1000, NULL, NULL, 01, 2007, 11223);
    INSERT INTO lineas VALUES (00002, -100, 1200, 10, 01, 2007, 11223);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 67890);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 67890);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 67890);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 67890);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 67890);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 67890);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 67890);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 67890);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 00111);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 00111);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 00111);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 00111);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 00111);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 00111);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 00111);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 00111);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 02031);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 02031);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 02031);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 02031);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 02031);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 02031);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 02031);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 02031);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 09876);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 09876);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 09876);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 09876);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 09876);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 09876);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 09876);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 09876);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 96352);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 96352);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 96352);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 96352);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 96352);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 96352);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 96352);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 96352);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 76543);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 76543);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 76543);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 76543);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 76543);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 76543);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 76543);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 76543);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 73152);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 73152);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 73152);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 73152);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 73152);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 73152);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 73152);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 73152);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 10, 2006, 64738);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 10, 2006, 64738);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 11, 2006, 64738);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 11, 2006, 64738);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 12, 2006, 64738);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 12, 2006, 64738);
    INSERT INTO lineas VALUES (00001, 1200, NULL, NULL, 01, 2007, 64738);
    INSERT INTO lineas VALUES (00002, -200, 1200, 10, 01, 2007, 64738);
    
    ALTER SESSION SET nls_date_format='DD/MM/YYYY';
    ALTER TABLE empleados ADD fnacimiento DATE;
    
    UPDATE empleados SET fnacimiento = TO_DATE('01/02/1960', 'DD/MM/YYYY') WHERE codigo = 00011;
    UPDATE empleados SET fnacimiento = TO_DATE('12/04/1964', 'DD/MM/YYYY') WHERE codigo = 00001;
    UPDATE empleados SET fnacimiento = TO_DATE('25/09/1955', 'DD/MM/YYYY') WHERE codigo = 02341;
    UPDATE empleados SET fnacimiento = TO_DATE('13/12/1963', 'DD/MM/YYYY') WHERE codigo = 11223;
    UPDATE empleados SET fnacimiento = TO_DATE('05/11/1967', 'DD/MM/YYYY') WHERE codigo = 67890;
    UPDATE empleados SET fnacimiento = TO_DATE('15/03/1968', 'DD/MM/YYYY') WHERE codigo = 00111;
    UPDATE empleados SET fnacimiento = TO_DATE('22/02/1972', 'DD/MM/YYYY') WHERE codigo = 02031;
    UPDATE empleados SET fnacimiento = TO_DATE('18/08/1975', 'DD/MM/YYYY') WHERE codigo = 09876;
    UPDATE empleados SET fnacimiento = TO_DATE('09/03/1975', 'DD/MM/YYYY') WHERE codigo = 96352;
    UPDATE empleados SET fnacimiento = TO_DATE('02/03/1969', 'DD/MM/YYYY') WHERE codigo = 76543;
    UPDATE empleados SET fnacimiento = TO_DATE('09/12/1973', 'DD/MM/YYYY') WHERE codigo = 73152;
    UPDATE empleados SET fnacimiento = TO_DATE('20/01/1964', 'DD/MM/YYYY') WHERE codigo = 64738;
    
    COMMIT;
z9ju0rcb

z9ju0rcb1#

您在查询中只使用了3个表。通过在线翻译器运行它们可以翻译为:

empleados: codigo, nombre
just_nominas: mes, ejercicio, ingreso, descuento, cod_emp
lineas: numero, cantidad, base, porcentaje, mes, ejercicio, cod_emp

致:

employees: code, name
just_payroll: month, year, income, discount, cod_emp
lines: number, quantity, base, percentage, month, year, cod_emp

我们不清楚“行”是否与收入有关,因此您可能只需要两个表:

SELECT name,
       SUM(income)
FROM   employees e
       INNER JOIN just_payroll p
       ON e.code = p.cod_emp
GROUP BY
       e.name;

密码:

SELECT NOMBRE,
       SUM(CANTIDAD)
FROM   EMPLEADOS A
       JOIN JUST_NOMINAS B ON (A.CODIGO=B.COD_EMP)
       JOIN LINEAS C ON (B.COD_EMP=C.COD_EMP)
GROUP BY NOMBRE;

是不正确的。
在三列monthyearcod_emp上的行表和工资表之间存在复合外键约束,并且您只连接一列cod_emp上的表
这意味着,对于第一个员工,将2006-10的payroll行连接到2006-10、2006-11、2006-12和2007-01的line行(因为您只匹配员工编号,而不匹配月份和年份),同样,该员工的其他payroll行也连接到所有四个line行,因此您得到的行数是同事的四倍,这就是为什么总数是同事的四倍。
这也不意味着你同事的代码是正确的;如前所述,似乎不需要使用line表,只需使用employeespayroll表即可获得income列的总和。
如果你想得到折扣的总数(这似乎不是问题所问的),那么,是的,你同事的代码可能是正确的。(虽然line数据有点奇怪,因为当base是1200,percentage是10时,discount列是-200,这是16.7%而不是10%。

相关问题