2014-09-20 4 views
1

stock_inward, stock_outward과 같은 두 개의 테이블이 있습니다. 이와 같은 결합 연산을 수행하여이 결과를 얻습니다.쿼리 결과에 null 값을 반환하는 방법

검색어 :

SELECT i.number, i.material_code, i.price, i.quantity, i.date, o.number, o.quantity, o.date, o.type 
FROM `stock_outward` AS o 
INNER JOIN `stock_inward` AS i ON `o`.material_code = `i`.material_code 
AND `o`.material_code = '1000002' 
LIMIT 0 , 30 

결과 :

number materialpricequantity date number quantity date type 
OPENING 1000002 75 50 2014-09-17 TRN/1-2 10 2014-09-18 Non-Returnable 
MRR/1-1 1000002 150 10 2014-09-17 TRN/1-2 10 2014-09-18 Non-Returnable 
MRR/1-2 1000002 100 50 2014-09-17 TRN/1-2 10 2014-09-18 Non-Returnable 
MRR/1-3 1000002 150 10 2014-09-18 TRN/1-2 10 2014-09-18 Non-Returnable 
MRR/1-4 1000002 10 10 2014-09-18 TRN/1-2 10 2014-09-18 Non-Returnable 
TRN/1-2 1000002 10 10 2014-09-18 TRN/1-2 10 2014-09-18 Non-Returnable 

내 문제는 내가이 같은 번호를 반복가있는 곳에는 null를 표시 할 것입니다. 내 원하는 o/p는 이렇게되어야합니다.

number materialpricequantity date number quantity date type 
OPENING 1000002 75 50 2014-09-17 TRN/1-2 10 2014-09-18 Non-Returnable 
MRR/1-1 1000002 150 10 2014-09-17 NULL NULL NULL NULL 
MRR/1-2 1000002 100 50 2014-09-17 NULL NULL NULL NULL 
MRR/1-3 1000002 150 10 2014-09-18 NULL NULL NULL NULL 
MRR/1-4 1000002 10 10 2014-09-18 NULL NULL NULL NULL 
TRN/1-2 1000002 10 10 2014-09-18 NULL NULL NULL NULL 

그것을 추적 할 수없는 가망 얻기 위해 columns.how 가치를 반복에 null을 반환하는 것입니다 내가 유 사람들이 내 긴장을 이해 바랍니다 내 인 질문에 문법적인 실수를 많이가 output.sorry이 필요합니다.

+0

이 SQL의 잘 사용하지 않습니다. 예를 들어 사용자에게 표시하기 위해 무엇을 사용하고 있습니까? PHP/HTML? 그것은 "** SQL"이 아닌 ** "the presentation layer"**에 의해 수행되어야합니다. –

답변

0

프리젠 테이션 로직에 이것을 넣는 것에 동의해야하지만, 선택 사항이 아닐 수도 있습니다. 당신이 MySQL을 사용하고 있기 때문에, 당신은 사용자 정의 된 변수를 활용할 수 있습니다 :

SELECT i.number, i.material_code, i.price, i.quantity, i.date, 
    @number:=IF(@prevnumber=o.number,null,o.number) number, 
    @quantity:=IF(@prevquantity=o.quantity,null,o.quantity) quantity, 
    @date:=IF(@prevdate=o.date,null,o.date) date, 
    @type:=IF(@prevtype=o.type,null,o.type) type, 
    @prevnumber:=o.number, 
    @prevquantity:=o.quantity, 
    @prevdate:=o.date, 
    @prevtype:=o.type 
FROM `stock_outward` AS o 
    INNER JOIN `stock_inward` AS i ON `o`.material_code = `i`.material_code 
     AND `o`.material_code = '1000002' 
LIMIT 0 , 30 
관련 문제