我正在尝试除“计数”。划分的要求是这些值应具有相同的批次ID和“携带”首字母缩写。除数应为“ Dental -NEBD”的计数值,并且股息应为“从批次添加”。

我怎样才能做到这一点?

这是一个数据样本:

Batch  Carr_Acronym  DATE          Count        Datatype
45056  ARM           12/31/2014     20       Added from batch
45056  ARM           12/31/2014      0       Deleted from batch
45056  ARM           12/31/2014      5       Dental - NEDB
45055  CUU           12/31/2014      0       Dental - NEDB

最佳答案

这样的事情应该起作用。您可以创建一个临时表进行联接,然后精确选择所需的表。事务处理后,临时表将被删除。这将使用您当前的表(在问题中)并将其复制到临时表。然后它将根据条件(匹配Batch和匹配Carr_Acronym)将两个表(问题中的当前一个表以及新创建的临时表)连接起来,然后在数据类型具有适当值时对计数进行除法。

CREATE TEMPORARY TABLE IF NOT EXISTS tempTable AS (SELECT * FROM MyTable);
SELECT (`a`.`Count` / `b`.`Count`) as `result`
FROM MyTable `a`
INNER JOIN tempTable `b` ON (`a`.`Batch` = `b`.`Batch`) AND (`a`.`Carr_Acronym` = `b`.`Carr_Acronym`)
WHERE a.Datatype LIKE 'added%' AND b.Datatype LIKE 'dental%';

关于mysql - 如何在同一列中划分两个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30945513/

10-12 14:17