sqlsever,一个报错找不到问题出在哪里,大佬帮忙看看

with t(num) as (select 1

    union all

    select num + 1

    from t

    where num < 96)--临时表

select 

ST.GCBH 

,ST.WPMC  AS 物料名称,ST.BLSL  AS  不良数量

,ST.pdbllx  AS  判定不良类型,ST.BLXXMC  AS  判定不良现象--不良现象名称

,SUBSTRING(CAST(CONVERT(varchar(100),ST.BLPDSJ,120) AS varchar),9,8)  AS  判定时间/*不良判定时间*/,SUBSTRING(CAST(CONVERT(varchar(100),ST.BLDJSJ,120) AS varchar),9,8)  AS  登记时间/*不良登记时间  */

,(CASE WHEN ST.ZRGXMC  IS NULL THEN ST.GXMC  ELSE ST.ZRGXMC END )  AS 责任工序名称

,ST.ZRID AS 责任人id

,(CASE WHEN ST.GXMC IS NULL  THEN ST.ZRGXMC  ELSE ST.GXMC END)  AS 发现工序

,ST.LZKKH  AS 流转卡编号/*流转卡卡号*/

,ST.blpdrxm  AS 不良判定人姓名

,FZ.JGDYMC   AS 加工单元名称

,FZ.JGSX   AS  加工顺序

,(ST.GCBH 

+' ' +

ST.WPMC  

+' '+

ST.BLSL 

+' ' +

ST.pdbllx 

+' ' +

ST.BLXXMC 

+' ' +

SUBSTRING(CAST(CONVERT(varchar(100),ST.BLPDSJ,120) AS varchar),9,8)  /*不良判定时间*/

+' '+

SUBSTRING(CAST(CONVERT(varchar(100),ST.BLDJSJ,120) AS varchar),9,8) /*不良登记时间  */

+' '+

(CASE WHEN ST.ZRGXMC  IS NULL THEN ST.GXMC  ELSE ST.ZRGXMC END )  

+' ' +

ST.ZRID 

+' '+

(CASE WHEN ST.GXMC IS NULL  THEN ST.ZRGXMC  ELSE ST.GXMC END) 

+' ' +

ST.LZKKH   /*流转卡卡号*/

+' ' +

ST.blpdrxm  

+' ' +

FZ.JGDYMC   

+' ' +

FZ.JGSX  

)   AS 标签

,1 as '值'

,SUBSTRING(CAST(CONVERT(VARCHAR(100), B.sjd1,120)  AS  VARCHAR),12,5)  AS 时间字段

,SUBSTRING(CAST(CONVERT(VARCHAR(100), B.sjd1,120)  AS  VARCHAR),12,3) + '00'   AS  Y轴时间显示

,(95-dateDiff(mi,B.sjd1,getDate())/15)  AS 时间刻度

,B.sjd1

from BHGPDJCXST  ST

JOIN   

  (SELECT AA.JGDYBH,AA.JGDYMC ,BB.GXH,BB.GXMC,AA.JGSX   FROM 

     ((select DISTINCT  A.JGDYBH,A.JGDYMC ,A.jgsx  from JGDYPJ_BYDAY AS A where A.JGDYMC  IS NOT NULL  AND A.JGSX IS NOT NULL ) AS  AA 

        JOIN 

(select DISTINCT B.JGDYBH,B.GXH,B.GX58f442dba19152fcfc9577b07d8c376.pngMC from GXPJ_BYDAY AS B)  AS BB ON AA.JGDYBH =BB.JGDYBH))  AS FZ  ON FZ.GXH=ST.GXH 

inner join 

  (select dateadd(mi,(num-0)*-15+15*ceiling(datepart(mi,getDate())/15.0),cast(convert(varchar(13),getDate(),20)+':00:00' as datetime)) as sjd1,dateadd(mi,(num-1)*-15+15*ceiling(datepart(mi,getDate())/15.0),cast(convert(varchar(13),getDate(),20)+':00:00' as datetime)) as sjd2

      from t) b on  ST.BLDJSJ   BETWEEN  B.sjd1  AND   B.sjd2 

WHERE ST.BLDJSJ>dateadd(dd,-1,getdate()) AND ST.GCBH ='0501' 

  

十万个小问题 发布于 2021-11-28 17:45
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
北纬六十六度Lv4初级互助
发布于2021-11-28 20:02(编辑于 2021-11-28 20:17)

sql 从数据类型 varchar 转换为 numeric 时出错.

你在设计里,查看下,是num的格式的,后面select跟的 num格式空着的就要用 null代替,Varchar格式用2个单引号‘’代替,百分百好用,希望帮到你

  • 2关注人数
  • 221浏览人数
  • 最后回答于:2021-11-28 20:17
    请选择关闭问题的原因
    确定 取消
    返回顶部