第二组和不同

时间:2016-10-02 09:47:52

标签: php mysql

我尝试使用此代码输出(正确输出)

enter image description here

但它给了我这个错误的输出 enter image description here

我需要区分名称并按品牌分组,但在我的查询中没有发生,请参见上图。

$datefilter=mysqli_query($link,"select 
        SUM(INVOICE_ITEM_AMOUNT_MX) AS totalamount,
        INVOICE_NO_MX,
        INVOICE_CUSTOMER_NAME
        ,INVOICE_DATE_MX,ITEM_BRAND_MX
        ,GROUP_CONCAT(INVOICE_ITEM_CODE_MX SEPARATOR '<BR>') as itemcode 
            ,GROUP_CONCAT(INVOICE_ITEM_QTY_MX SEPARATOR '<BR>') as quantity 
            ,GROUP_CONCAT(INVOICE_ITEM_UPRICE_MX SEPARATOR '<BR>') as price 
            ,GROUP_CONCAT(INVOICE_ITEM_SERIAL_MX SEPARATOR '<BR>') as serial 
                    ,GROUP_CONCAT( DISTINCT (INVOICE_SALES_REP_MX) SEPARATOR '<BR>') as salesrep 

            ,GROUP_CONCAT(DISTINCT (ITEM_BRAND_MX) SEPARATOR '<BR>') as brand         
    from invoice where INVOICE_DATE_MX BETWEEN '" .$datefrom. "' AND  '" . $dateto ."' and 
    BRANCH_CODE_MX='".$display_branchcode."' AND INVOICE_STATUS_MX='PAID' GROUP BY INVOICE_SALES_REP_MX,ITEM_BRAND_MX ");

     $count=mysqli_num_rows($datefilter);
        echo '<div class="col-xs-12">

                    <br>
                    <div class="col-xs-6">
    <label> Total Invoice Number: </label> '.$count.'
        </div>
        <div class="col-xs-6">
    <label> Date Range: </label> '.$convertedfrom.' - '.$convertedto.'
        </div>
        </div>';            

        while($daterow=mysqli_fetch_array($datefilter)){
                                    $date=$daterow["INVOICE_DATE_MX"];
                            $customername=$daterow["INVOICE_CUSTOMER_NAME"];
                            $invoiceref=$daterow["INVOICE_NO_MX"];
                            $salesrep=$daterow["salesrep"];
                            $itemcode=$daterow["itemcode"];
                            $imeiserial=$daterow["serial"];
                            $totalnotformat=$daterow["totalamount"];
                            $upricenotformat=$daterow["price"];
                            $quantity=$daterow["quantity"];
                            $itembrand=$daterow["brand"];

                      $total=number_format($totalnotformat,2);
                      $uprice=number_format($upricenotformat,2);            
        echo'
    <div class="col-xs-12">
                    <br>
                    <div class="panel panel-warning">
        <div id="shade" class="panel-body"><label>'.$salesrep.'</label></div>
        <div  id="shade" class="panel-body">
    <div class="col-xs-10">
    <div class="col-xs-4">';
    echo '
    <label>Brand</label>: '.$itembrand.'<br>
    <div class="col-xs-7">
    <label>Item Code</label> <br>'.$itemcode.'  

    </div>
    <div class="col-xs-1">
    <label> Quantity</label> <br>'.$quantity.'  

    </div>
    </div>             
    </div>        
        </div>

1 个答案:

答案 0 :(得分:1)

我想,以下应该有所帮助,你想要的是我的意思是显示不同的名字。但你可以轻松地用PHP做到这一点:

SELECT CASE WHEN t.id = (SELECT t2.id FROM process t2
WHERE t2.projectNo = t.projectNo
GROUP BY t2.projectNo LIMIT 1) THEN t.projectNo
ELSE
''
END AS Deatils, t.stuff
FROM process t

示例输入和输出:

mysql_distinct

mysql_distinct_02