我正在尝试除“计数”。划分的要求是这些值应具有相同的批次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/