搜索

这样写sql语句为什么显示不完全

发布网友 发布时间:2022-04-24 13:58

我来回答

3个回答

热心网友 时间:2023-05-18 08:27

这个是因为你的CASE……WHEN……语句重复判断一列

--SELECT LEFT({@StartTime@},4+'年'+RIGHT(LEFT({@StartTime@},7),2)+'月'+RIGHT(LEFT({@St    --这一句应该是不完整吧?

SELECT BT.BeamTypeName,Lot,ProctName,COUNT(*) c,WarpLot,
CASE WHEN FatherBeamID IS NOT NULL THEN '剪经' ELSE '' END BeamCut,
CASE HealdType WHEN '长铁综' THEN '多臂' WHEN '长塑料综' THEN '多臂' ELSE '' END db
FROM {!BeamTable!} tBeamList BL
INNER JOIN {!BeamTable!} tBeamType BT 
ON BT.BeamTypeID=BL.BeamTypeID
WHERE ISNULL(BL.MachineName,'')=''
GROUP BY BT.BeamTypeName,Lot,ProctName,COUNT(*) ,WarpLot,
CASE WHEN FatherBeamID IS NOT NULL THEN '剪经' ELSE '' END ,
CASE HealdType WHEN '长铁综' THEN '多臂' WHEN '长塑料综' THEN '多臂' ELSE '' END 
ORDER BY BT.BeamTypeName,Lot
--CASE……WHEN……的用法可以一次判断多个可能,不用像你那样写。你那样用CASE……WHEN……会少判断一种HealType=‘长塑料综'的情况,另外请确认数据表中有你所说的数据

希望对你有帮助。

热心网友 时间:2023-05-18 08:27

强烈建议大家将SQL代码按一定的规矩进行格式化,可以方便阅读、调测。

例如“Baby_原来”的核心代码可以像下面的样子:

SELECT 
    BT.BeamTypeName,
    Lot,
    ProctName,
    COUNT(*) c,
    WarpLot,
    CASE 
        WHEN FatherBeamID IS NOT NULL THEN '剪经' 
        ELSE '' END BeamCut,
    CASE HealdType 
        WHEN '长铁综' THEN '多臂' 
        WHEN '长塑料综' THEN '多臂' 
        ELSE '' END db
FROM {!BeamTable!} tBeamList BL
INNER JOIN {!BeamTable!} tBeamType BT ON BT.BeamTypeID=BL.BeamTypeID
WHERE ISNULL(BL.MachineName,'')=''
GROUP BY 
    BT.BeamTypeName,
    Lot,
    ProctName,
    WarpLot,
    CASE 
        WHEN FatherBeamID IS NOT NULL THEN '剪经' 
        ELSE '' END ,
    CASE HealdType 
        WHEN '长铁综' THEN '多臂' 
        WHEN '长塑料综' THEN '多臂' 
        ELSE '' END 
ORDER BY 
    BT.BeamTypeName,
    Lot

热心网友 时间:2023-05-18 08:28

楼主你用的是inner join 内连接的方式也就是两张表都存在的数据,请确认在两张表中都有 "长塑料综"的相关数据!追问这个是别人写的,我只是照着大概的意思改,所以,你看我这样的话该怎么弄才能解决这个问题

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top