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