sql-其他人写的不错的

1.

-- 结果:最新的5个收费项目的信息
SELECT * FROM
(
SELECT charge.ID,charge.Name,charge.Remark,charge.IsDeal,charge.Mode,charge.PinYin,charge.Size,charge.Code,charge.PrintName,charge.ProductAdd,charge.ProductType,

    CASE 
        WHEN rc.Price IS NOT NULL 
            THEN rc.Price 
        ELSE charge.Price END 
    AS Price,

    CASE 
        WHEN rc.`Status` IS NOT NULL 
            THEN rc.`Status` 
        WHEN product.RetailStatus IS NOT NULL 
            THEN product.RetailStatus 
        WHEN product.RetailStatus IS NULL AND product.RetailStatus=1 AND rc2.`Status` IS NOT NULL 
            THEN rc2.`Status` 
        ELSE charge.`Status` END 
    AS Status,

    unit.Name AS UnitName, category.Name AS CategoryName 

FROM SmartCharge AS charge

    LEFT JOIN SmartProduct AS product ON charge.ID = product.ChargeID 
    INNER JOIN SmartUnit AS unit ON charge.UnitID = unit.ID 
    INNER JOIN SmartChargeCategory AS category ON charge.CategoryID = category.ID 
    LEFT JOIN SmartRetailConfig AS rc ON rc.ChargeID = charge.ID  AND rc.HospitalID = 2 
    LEFT JOIN SmartRetailConfig AS rc2 ON rc2.ProductID = product.ID  AND rc2.HospitalID = 2
)
AS result 

WHERE TRUE AND ((result.ProductType = 1 AND result.Status=1) OR result.ProductType = 0)  AND result.Status = 1 

ORDER BY result.Status DESC,result.ID DESC
LIMIT 0,5

猜你喜欢

转载自www.cnblogs.com/margot921/p/10418040.html