Soo更新查询不是我会说我很擅长的。我的代码显示了我的原始代码,ICD9代码和ICD10代码。
基本上我想为每个9代码取出ICD10代码的前1位并更新匹配的原始代码。原始版本将与ICD9代码匹配。
select
tf.default_value Orig,
MAX(i9.conceptcode) ICD9,
MAX(i10.conceptcode) ICD10
from
extract_icd10_9_xref xr
join
extract_icd9_concept i9 on i9.concept_id = xr.targetconcept_id
join
extract_icd10_concept i10 on i10.concept_id = xr.sourceconcept_id
join
template_fields tf on i9.conceptcode = tf.default_value
group by
tf.default_value
退货(以及其他)
**ORIG ICD9 ICD10**
301.4 301.4 F60.5
996.2 996.2 T85.199A
E920.4 E920.4 W27.8xxD
E918 E918 W23.1xxD
285.21 285.21 D63.1
765.10 765.10 P07.10
593.70 593.70 N13.71
同样,我对更新查询很糟糕。所以我希望有人可以帮我写上面的查询,所以当运行它会覆盖template_fields中的ORIG与extract_icd10_concept中的ICD10
非常感谢任何帮助:/
我可怕的第一次尝试
update template_fields tf
set default_value = MAX(i10.conceptcode)
where i9.conceptcode = tf.default_value
join extract_icd9_concept i9 on i9.conceptcode = tf.default_value
join extract_icd10_concept i10 on i10.concept_id = xr.sourceconcept_id
join template_fields tf on i9.conceptcode = tf.default_value
答案 0 :(得分:3)
由于我不完全理解您的表结构,因此可能需要进行调整,但基本思路是创建一个select查询以获取ICD10值。然后将它连接到要更新的表(这使它成为派生表)。在下面的查询中,您将注意到我在注释中嵌入了SELECT。运行此SELECT而不是更新,直到您确定要正确更新为止。
UPDATE tf
SET default_value = a.ICD10
--select tf.default_value, a.ICD10, *
FROM template_fields tf
JOIN
(SELECT tf.default_value Orig, MAX(i10.conceptcode) ICD10
FROM extract_icd10_9_xref xr
JOIN extract_icd9_concept i9 ON i9.concept_id = xr.targetconcept_id
JOIN extract_icd10_concept i10 ON i10.concept_id = xr.sourceconcept_id
JOIN template_fields tf ON i9.conceptcode = tf.default_value
GROUP BY tf.default_value) a
ON a.defaultvalue = tf.defaultvalue
答案 1 :(得分:2)
这应该使用与ICD9匹配的MAX ICD10更新default_value字段。
bigonumber <- 429382748394831049284934
hash_big <- digest::digest(bigonumber)
hash_big
# "e47e7d8a9e1b7d74af6a492bf4f27193"
答案 2 :(得分:0)
我认为这就是你所需要的 -
-