Error 확인 0 1 3,538

by 둥그르 [2024.03.27 10:39:24]


select  CASE WHEN extract (hour from sh.shippedat) < 7 THEN to_char(sh.shippedat + INTERVAL '-1 day', 'yyyy-mm-dd') ELSE to_char(sh.shippedat, 'yyyy-mm-dd') END workDay
       ,sku.externalid
       ,sku.name
       ,sku.isfragile
       ,sum(sis.quantity) Total_unit
       ,B.CATE1
       ,B.CATE2
       ,B.CATE3
       ,B.CATE4
       ,B.CATE5
from ods.shipments sh
left join ods.shipment_items sis on sh.id = sis.shipmentId
left join ods.skus sku on sis.skuid = sku.id
left join bimart.dwd_sku_x_margin g ON sku.EXTERNALID = g.SKUSEQ
left join bimart.MANAGEMENT_CATEGORY_HIER_CURR B ON g.MNGCATEID = B.MNGCATEID
where sh.centerid in ('숫자')
and sh.shippedat between '2024-03-01 07:00:00' and '2024-3-20 08:00:00'
group by 1,2,3,4,6,7,8,9,10


위와 같은 SQL문을 돌리면 프로그램에서는 돌아가는데, 웹에서는 아래와 같은 메세지가 나오는데 이유가 뭘까요?

Query failed (#20240327_005420_13848_2ndtq): line 14:55: Cannot apply operator: varchar(60) = bigint

by 마농 [2024.03.27 10:59:38]

자료형이 안 맞는 것끼리 비교해서 발생하는 에러인 듯 합니다.
문자와 숫자 비교시 문자가 숫자로 형변환되어 비교되는데
이 때 숫자로 변형 불가능한 문자가 있으면 에러가 납니다.
예)
'1' -> 1 형변환 가능
'a' -> 형변환 불가

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입