可以使用CASE语句来实现根据染料类型判断处方类型的逻辑。以下是一种可能的SQL Server语句实现方式:

SELECT A.PrescriptionNo,
    CASE
        WHEN EXISTS (SELECT 1 FROM B WHERE PrescriptionNo = A.PrescriptionNo AND DyeCode LIKE 'R1%' AND DyeCode NOT LIKE 'R3%') THEN '单染棉'
        WHEN EXISTS (SELECT 1 FROM B WHERE PrescriptionNo = A.PrescriptionNo AND DyeCode LIKE 'R2%' AND DyeCode NOT LIKE 'R3%') THEN '单染涤'
        WHEN EXISTS (SELECT 1 FROM B WHERE PrescriptionNo = A.PrescriptionNo AND DyeCode LIKE 'R2%' AND DyeCode LIKE 'R3%') THEN '单染涤A'
        WHEN EXISTS (SELECT 1 FROM B WHERE PrescriptionNo = A.PrescriptionNo AND DyeCode LIKE 'R1%' AND DyeCode LIKE 'R2%' AND DyeCode LIKE 'R3%') THEN '双染'
        WHEN EXISTS (SELECT 1 FROM B WHERE PrescriptionNo = A.PrescriptionNo AND DyeCode LIKE 'R2%' AND DyeCode LIKE 'R4%' AND DyeCode LIKE 'R3%') THEN '直染'
        WHEN EXISTS (SELECT 1 FROM B WHERE PrescriptionNo = A.PrescriptionNo AND DyeCode NOT LIKE 'R3%') THEN '本白'
        ELSE '特殊'
    END AS PrescriptionType
FROM dbo.tmPrescriptionHdr AS A
WHERE A.PrescriptionNo = '2303001442'

上述SQL语句通过嵌套的子查询来判断处方明细中的染料类型,并使用CASE语句将其映射为对应的处方类型。根据处方号进行过滤,可以得到指定处方号的处方类型


原文地址: http://www.cveoy.top/t/topic/iJV3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录