我的查询有一个排序(ORDER BY)问题,我无法弄清楚 它返回的排序值如下所示,即使右栏中的ORDER BY选项处于活动状态。
SUPPLIER(t.naam) - ORDER DATE (r.datum) - ARTICLE
我需要
ORDER DATE (r.datum) - SUPPLIER(t.naam) - ARTICLE
$towhere = '';
if ($_SESSION['user']['type'] == 'to') {
$towhere .= ' and p.relaties_code_0 ="' . (string)$_SESSION['user']['code'] . '"';
}
if (isset($_SESSION['jetnet']) && $_SESSION['jetnet']) {
$towhere .= ' and p.relaties_code_0 in (' . $jetnet_touroperators . ')';
}
$query = 'SELECT p.id
,p.relaties_code
,r.datum
,t.naam as touroperator
,p.taalcodes_taalcode as taal
,p.tmsritd_id
,p.aantal
,p.artikel_id
,p.memoverzending
,p.omschr
,p.tmsinvoicecode_code as tmsinvoicecode,
po.impref01 AS ponummer
FROM tmspickd (NOLOCK) p join tmsbstreld (NOLOCK) po on po.id=p.tmsbstreld_id join relaties (NOLOCK) t on p.relaties_code_0=t.code join tmsritd (NOLOCK) rd on p.tmsritd_id=rd.id join tmsrit (NOLOCK) r on rd.tmsrit_id=r.id where p.relaties_code=\'' . (string)$_SESSION['user']['bestelcode'] . '\' ' . $towhere . ' order by r.datum desc, p.relaties_code_0, p.artikel_id';
$rows = S::getAll($query, array());
foreach ($rows as $row) {
//Y-m-d
$row['datum'] = date('Y-m-d', strtotime($row['datum']));
$row['omschr'] = htmlentities($row['omschr']);
//controleer als ponummer numeriek is
if (!is_numeric(substr($row['ponummer'], 0, 5))) {
$row['ponummer'] = "";
}
$tplvars['delivered'][] = $row;
任何帮助?谢谢!
我客户的信息是保密的,因此我无法在此处提供实际的样本数据。所以我把它变成了通用的,但理解起来非常简单。 客户可以在线订购不同供应商的不同产品 在订单历史记录视图中,我需要显示第一个预定的交货日期降序 现在它按供应商名称排序并混合日期。所以客户因缺少订单而调用false
我们正在使用带有MSSQL数据库的Windows CRM应用程序和PHP在线应用程序,以便客户订购产品。
示例数据:
SCHEDULED DELIVERY DATE SUPPLIER ARTICLE
2015-02-03 sup1 product A
2015-02-03 sup2 product D
2015-02-01 sup1 product A
2015-02-14 sup3 product X
2015-02-15 sup3 product Y
2015-02-16 sup4 product Z
2015-02-01 sup1 product A