이동 통신사 목록을 얻고 이동 통신사를 식별하기 위해 보유하고있는 보험 금액을 비교하려고하는 다소 큰 쿼리가 있습니다 최소 임계 값을 충족시키지 못합니다. select 쿼리를 실행하면 오류없이 올바르게 작동합니다. 나는 테이블에 삽입을 위해 그것을 사용하려고하면 그러나이 오류 메시지가오류 1366 - 올바르지 않은 10 진수 값 : '' '열'에 -1 행
[Err] 1366 - Incorrect decimal value: '' for column '' at row -1
내가이 쿼리의 맨 아래에 소수점으로 캐스트를 사용해야에게 반환 때문에에 저장되는 값 데이터베이스가 varchar이며 변경할 수 없습니다.
누구든지 아이디어가 있습니까?
set @cw_days = 15;
INSERT INTO carrier_dnl (carrier_id, dnl_reason_id, status_id)
SELECT work_cw_carrier_status_update.carrier_id, company_dnl_schema.dnl_reason_id,
CASE
WHEN work_cw_carrier_status_update.comparison_date > @cw_days THEN 1
ELSE 4
END as status
FROM work_cw_carrier_status_update
JOIN company_dnl_schema
ON company_dnl_schema.dnl_reason_id = 51
LEFT OUTER JOIN carrier_insurance
ON carrier_insurance.carrier_id = work_cw_carrier_status_update.carrier_id
WHERE ifnull(carrier_insurance.insurance_type_id,4) = 4
AND date(now()) BETWEEN IFNULL(carrier_insurance.insurance_effective_date,DATE_SUB(now(),INTERVAL 1 day)) AND IFNULL(carrier_insurance.insurance_expiration_date,DATE_ADD(now(),INTERVAL 1 day))
AND CASE WHEN NULLIF(carrier_insurance.insurance_bipdto_amount,'') is null THEN 0 < company_dnl_schema.value
ELSE
ifnull(cast(replace(carrier_insurance.insurance_bipdto_amount, '*','') as decimal),0) < company_dnl_schema.value
END
AND (work_cw_carrier_status_update.b_bulk = 0 OR work_cw_carrier_status_update.b_bulk = 1)
AND (work_cw_carrier_status_update.b_otr = 1 OR work_cw_carrier_status_update.b_ltl = 1
OR work_cw_carrier_status_update.b_dray = 1 OR work_cw_carrier_status_update.b_rail = 1
OR work_cw_carrier_status_update.b_intermodal = 1 OR work_cw_carrier_status_update.b_forwarder = 1
OR work_cw_carrier_status_update.b_broker = 1)
group by work_cw_carrier_status_update.carrier_id;`
이 오류도 발생합니다. 아주 이상한 열 ''을 가지고 행 -1 잘못된 10 진수 값에 대한 오류를 트리거합니다. 해결 방법을 찾았습니까? – LarsH
제 경우에는 열의 데이터 유형을 varchar (10)에서 10 진수 (6, 3)로 변경하려고 할 때 오류가 발생했습니다. 열에 이미 3, 5, 6.1, NULL ... 및 'VGA'인스턴스가 하나 있습니다. 후자가 범인 이었다는 것이 밝혀졌습니다. 하지만 오류 메시지는 여전히 의미가 없습니다. 값 : '', 열 ''및 행 -1은 모두 잘못보고되었습니다. – LarsH