所以我在下面定義了幾個(gè)關(guān)系表父數(shù)據(jù)庫(kù):public function backorderQuantities(){ return $this->hasMany(BackorderQuantity::class, 'ITEMNMBR', 'ITEMNMBR')->where('SOPTYPE', 5); }關(guān)系數(shù)據(jù)庫(kù): public function item(){ return $this->belongsTo(Item::class, 'ITEMNMBR', 'ITEMNMBR'); }我這樣稱呼這種關(guān)系:Item::has('backorderQuantities') ->select('ITEMNMBR', Item::raw("SUM(QTYONHND) as qty"), Item::raw("SUM(QTYONORD) as ordered"), Item::raw("SUM( ( CASE WHEN LOCNCODE LIKE 'IT-%' THEN QTYONHND END ) ) as transit"), ) ->where('PRIMVNDR', Auth::user()->vendor_id) ->groupBy('ITEMNMBR') ->orderBy($group['field'], $group['sort']) );這工作正常,但我還需要從 backorderQuantities 中選擇字段,以便我可以按所述字段進(jìn)行排序。換句話說(shuō),我想做這樣的事情: Item::has('backorderQuantities') ->select('ITEMNMBR', Item::raw("SUM(QTYONHND) as qty"), Item::raw("SUM(QTYONORD) as ordered"), Item::raw("SUM( ( CASE WHEN LOCNCODE LIKE 'IT-%' THEN QTYONHND END ) ) as transit"), 'backorderQuantities->QUANTITY' ) ->where('PRIMVNDR', Auth::user()->vendor_id) ->groupBy('ITEMNMBR') ->orderBy('backorderQuantities->QUANTITY', $group['sort'])但我遇到了這樣的錯(cuò)誤:SQLSTATE[42S22]:[Microsoft][SQL Server 的 ODBC 驅(qū)動(dòng)程序 17][SQL Server]列名稱“backorderQuantities”無(wú)效。(SQL: select count(*) 作為聚合 from (select [ITEMNMBR], SUM(QTYONHND) 作為數(shù)量, SUM(QTYONORD) 作為訂購(gòu), SUM( ( CASE WHEN LOCNCODE LIKE 'IT-%' THEN QTYONHND END ) ) 作為中轉(zhuǎn), json_value([backorderQuantities], '$."QUANTITY"') from [IV00102] 存在(從 [SOP10200] 選擇 *,其中 [IV00102].[ITEMNMBR] = [SOP10200].[ITEMNMBR] 且 [SOPTYPE] = 5 ) 和 [PRIMVNDR] = YHI 按 [ITEMNMBR]) 分組為 [aggregate_table])可能是因?yàn)楫?dāng)時(shí)該表仍在急切加載。有什么辦法可以做到這一點(diǎn)嗎?任何幫助將非常感激!
2 回答

倚天杖
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用with選擇 eger 加載列:
Item::with('backorderQuantities:QUANTITY,...');
不要忘記將backorderQuantities表的 forigen 鍵傳遞給選定的列
編輯 :
要按子列排序,您應(yīng)該使用 join 語(yǔ)句:
Item::select('items.*')->leftJoin('items.ITEMNMBR','=','backorderQuantities.ITEMNMBR')->groupBy('backorderQuantities.ITEMNMBR')->orderBy('backorderQuantities.backorderQuantities')
- 2 回答
- 0 關(guān)注
- 105 瀏覽
添加回答
舉報(bào)
0/150
提交
取消