2014-12-24 1 views
-1

I 변수로 날짜의 일, 월 및 연도를 추출한 다음 테이블에하지가

문제를 몇 가지 그 갱신을해야 할 나는 데 내가 로컬 필드가 설정 한 결과를 얻을 수 있어요 불구하고 항상 곁에 updatedon이 널 (NULL) 필드 아니다

DECLARE ExistingRecordYear INT; 
    DECLARE ExistingRecordMonth INT; 
    DECLARE ExistingRecordDay INT; 
    DECLARE CountRecords SMALLINT; 

    SELECT COUNT(*) , ExistingRecordYear = YEAR(updatedon), 
    ExistingRecordMonth = MONTH(updatedon), ExistingRecordDay = DAY(updatedon) 
    FROM `transactions` 
    WHERE `issuer_id` = _issuer_id 
    AND `msisdn` = _msisdn ; 

비록 널 (null)

MySQL의 쿼리를 표시한다는 것입니다 내 집계 결과 1하지만 난입니다 월, 일, 일의 세 가지 필드 모두에서 여전히 null을보고있다.

그것이 select 문에서

+2

당신은 아마 찾고있는 'SELECT ... INTO' 부정적인 질문을 표시하는 이유는 무엇 – Zaffy

+0

? 관리자 확인하시기 바랍니다 –

답변

2

, 당신은 변수가 아닌 =을 할당 :=를 사용에서 저를 도와주세요. 또한 변수를 접두사와 구분하기 위해 변수 앞에 접두어를 사용하는 것이 좋습니다. 뭔가 같이 :

DECLARE v_ExistingRecordYear INT; 
DECLARE v_ExistingRecordMonth INT; 
DECLARE v_ExistingRecordDay INT; 
DECLARE v_CountRecords SMALLINT; 

SELECT v_CountRecords := COUNT(*) , v_ExistingRecordYear := YEAR(updatedon), 
     v_ExistingRecordMonth := MONTH(updatedon), v_ExistingRecordDay := DAY(updatedon) 
FROM `transactions` 
WHERE `issuer_id` = _issuer_id AND `msisdn` = _msisdn ; 
+0

고마워요 힌트를 위해 다음 쿼리 작동 DECLARE lv_ExistingRecordYear INT; DECLARE lv_ExistingRecordMonth INT; DECLARE lv_ExistingRecordDay INT; DECLARE lv_CountRecords INT; SELECT @lv_CountRecords = COUNT (*) @lv_ExistingRecordYear = YEAR (updatedon) @lv_ExistingRecordMonth = MONTH (updatedon) @lv_ExistingRecordDay = DAY (updatedon) transactions_total' FROM WHERE''= issuer_id' _issuer_id AND'trans_mode' = _trans_mode AND'msisdn' = _msisdn; –

관련 문제