При преобразовании sql-запроса в построитель запросов я застрял, поскольку запрос возвращает пустой набор, а я знаю, что необработанное предложение SQL вернет ~ 200 записей.
устранение неполадок с помощью toSql () и консольного тестирования.Я предполагаю, что у меня есть странное «где» или «вкл», отбрасывающий вещи, но я, кажется, не могу связать это.Я ценю все ваши глаза заранее.спасибо.
select [h].[commitment_desc],
[im].[item_id],
[im].[item_desc],
[d].[qty_committed],
[jpl].[price],
[d].[item_start_date] as [item_commitment_start_date],
[il_c].[qty_on_hand] as [CPP_oh],
[il_b].[qty_on_hand] as [Bloomington_oh]
from [item_commitment_hdr] as [h]
left join [item_commitment_detail] as [d]
on [h].[item_commitment_hdr_uid] = [d].[item_commitment_hdr_uid]
and [d].[item_start_date] < ?
and [d].[item_end_date] > ?
inner join [inv_mast] as [im]
on [d].[inv_mast_uid] = [im].[inv_mast_uid]
inner join [job_price_hdr] as [jph]
on [jph].[job_no] = ?
left join [job_price_line] as [jpl]
on [jph].[job_price_hdr_uid] = [jpl].[job_price_hdr_uid]
and CAST (im.inv_mast_uid as nvarchar(15)) = jpl.inv_mast_uid
and [jpl].[row_status_flag] = ?
left join [inv_loc] as [il_b]
on [d].[inv_mast_uid] = [il_b].[inv_mast_uid]
and [il_b].[location_id] = ?
and [il_b].[delete_flag] = ?
left join [inv_loc] as [il_c]
on [d].[inv_mast_uid] = [il_c].[inv_mast_uid]
and [il_c].[location_id] = ?
and [il_c].[delete_flag] = ?
where [h].[customer_id] = ?
and [h].[row_status_flag] = ?
and [h].[commitment_start_date] < ?
and [h].[commitment_end_date] > ?
и теперь php
$liability = DB::connection('p21')->table('item_commitment_hdr as h')
->select(
'h.commitment_desc',
'im.item_id',
'im.item_desc',
'd.qty_committed',
'jpl.price',
'd.item_start_date as item_commitment_start_date',
'il_c.qty_on_hand as CPP_oh',
'il_b.qty_on_hand as Bloomington_oh'
)->leftjoin('item_commitment_detail as d', function ($join) use ($now) {
$join->on('h.item_commitment_hdr_uid', '=', 'd.item_commitment_hdr_uid')
->where('d.item_start_date', '<', $now)
->where('d.item_end_date', '>', $now);
})->join('inv_mast as im', 'd.inv_mast_uid', '=', 'im.inv_mast_uid')
->join('job_price_hdr as jph', function ($join) use ($job_no) {
$join->where('jph.job_no', '=', "'" . $job_no[0] . "'");
})->leftjoin('job_price_line as jpl', function ($join) {
$join->on('jph.job_price_hdr_uid', '=', 'jpl.job_price_hdr_uid')
->whereRaw('CAST (im.inv_mast_uid as nvarchar(15)) = jpl.inv_mast_uid')
->where('jpl.row_status_flag', '=', (int)704);//active flag
})->leftjoin('inv_loc as il_b', function ($join) use ($mainWarehouse) {
$join->on('d.inv_mast_uid', '=', 'il_b.inv_mast_uid')
->where('il_b.location_id', '=', (int)$mainWarehouse)
->where('il_b.delete_flag', '=', "'N'");
})->leftjoin('inv_loc as il_c', function ($join) use ($consignmentWarehouse) {
$join->on('d.inv_mast_uid', '=', 'il_c.inv_mast_uid')
->where('il_c.location_id', '=', (int)$consignmentWarehouse)
->where('il_c.delete_flag', '=', "'N'");
})->where('h.customer_id', '=', (int)$AccountGroup[0]->corp_address_id)
->where('h.row_status_flag', '=', (int)704)
->where('h.commitment_start_date', '<', $now)
->where('h.commitment_end_date', '>', $now)
->orderBy('im.item_id')
//->toSql();
->get();