Ajax以前 関数の理解が足りないのかも知れませんが、ご教示頂けませんでしょうか?
以下が現況のコーディングで、当方としては
AjaxでDBからのデータ取得に成功した際は、その内容を画面の項目へ格納、
DBからの取得に失敗した場合は エラーコードを画面にうったえる動作を達成したいと考えています。

====質問====
DB該当なし・接続エラー等の理由でrejectされた際も、DB取得に成功してresolveになった際も、呼び出し側に値を戻すような動作を達成したいのですが、現況のdef.done(function(data){とdef.fail(function(data){ の部分は本来どういった記載を行えば良いのでしょうか?

分からないなりにやってみたものの、現況は戻り値を得られていないようです。どこかを直せば無事に動作するようになるのか、根本的に考え・方針を見直すべきなのかさえ分からない状況です、ご見解を頂けたら幸いです。

var text = $(this).parent().parent().find("input"); 
var param = text.eq(0).val();


    var def = costGet(param);
    def.done(function(data){
        var unitp = String(data[0]).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
        var totalp = String(data[0] * $(this).val()).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
        label.eq(3).html(unitp);    //★単価★
        label.eq(4).html(totalp);   //★金額★
        return false;
    });
    def.fail(function(data){
        label.eq(3).html("");
        label.eq(4).html("");
        alert(data[0]);
        return false;
    });

    //単価情報の取得
    function costGet (cd) {
        var dp_a = new $.Deferred();
        $.ajax({
            url: "cdcostget.php",
            type: "POST",
            dataType: "json",
            data: {
                in_cd: cd,
                in_ymd: costGetYM()     // 引数別途入手
            }
        })
        .done(function(data){
            if (data.length <= 0) {
                dp_a.reject("err#014");     //【該当なし】
            } else {
                dp_a.resolve(data[0]);      //【成功】
            }
        })
        //サーバ接続エラー
        .fail(function(data){
            console.log("###原価情報取得時のサーバ系エラー###");
            dp_a.reject("err#013");         //【その他エラー】
        });
        return dp_a;
    }