以下是我的疑问:
SELECT
U.Part
,U.EndDate
,F.Part
,F.EndDate
,(U.Calc1/(CASE F.Calc2 WHEN 0 THEN .00000001 ELSE F.Calc2 END)) AS PercentRepaired
,(1-(U.Calc1/(CASE F.Calc2 WHEN 0 THEN .00000001 ELSE F.Calc2 END))) AS PercentNoFault
,NF.*
,R.*
FROM
RCCalc1Part U
INNER JOIN
RCCalc2Part F
ON
U.Part = F.Part AND U.EndDate = F.EndDate
INNER JOIN RCNF NF
ON Part = LEFT(NF.Part,7)
INNER JOIN Repair R
ON
NF.Part = (CASE LEFT(NF.Part,7) WHEN '2000000' THEN CONCAT(R.Part,'-',LEFT(R.ExtendedPart,1)) ELSE NF.Part END)
ORDER BY
U.SN ASC, NF.Part ASC, U.EndDate ASC
以下是我关注的INNER JOIN:
INNER JOIN Repair R
ON
NF.Part = (CASE LEFT(NF.Part,7) WHEN '2000000' THEN CONCAT(R.Part,'-',LEFT(R.ExtendedPart,1)) ELSE NF.Part END)
我正在尝试使用调试器来查找=
右侧的值。它似乎没有做我想做的事情。当NF。部分= 2000000
然后我想要CONCAT
R.Part
并希望该连接成为=
右侧的值。
我这样做了吗?如果不是......我离开了吗?
感谢。
答案 0 :(得分:0)
INNER JOIN Repair R ON NF.Part = (CASE LEFT(NF.Part,7) WHEN '2000000' THEN CONCAT(R.Part,'-',LEFT(R.ExtendedPart,1)) ELSE R.Part END)
正是我要找的......除了else语句后的列,一切都是正确的。