0

わかりましたので、メインの選択クエリは次のとおりです。

    SELECT 
        tbl_equip_swl_unit.unit_name, 
        tbl_equipment.equipment_id, 
        tbl_equipment.e_serial, 
        tbl_equipment.e_description, 
        tbl_equipment.e_swl,  
        tbl_equipment.e_swl_unit_id, 
        tbl_Lifting_Gear.lifting_through, 
        tbl_Lifting_Gear.liftingNDT,
        tbl_Lifting_Gear.lifting_ref_no, 
        tbl_Lifting_Gear.liftingTest,
        tbl_Lifting_Gear.inspected 
 FROM tbl_equipment 
INNER JOIN tbl_equip_swl_unit ON tbl_equipment.e_swl_unit_id = tbl_equip_swl_unit.unit_id 
INNER JOIN tbl_Lifting_Gear ON tbl_equipment.equipment_id = tbl_Lifting_Gear.e_id
WHERE   lifting_loc = @loc AND tbl_Lifting_Gear.con_id = @con AND tbl_equipment.e_deleted = 'N' ORDER BY lifting_ref_no, e_swl, e_serial

以下のクエリは現在、Web ページの繰り返し領域内にネストされており、メイン クエリのすべての結果が返されるまで実行されます。

SELECT TOP 1
        e_defects,
        con_id,
        lifting_loc,
        lifting_date,
        e_add_type

FROM dbo.tbl_Lifting_Gear 
WHERE e_id = @id ORDER BY lifting_date DESC

@id の値は tbl_Lifting_Gear.equipment_id です (親クエリから)

@con と @loc は、ブラウザーから渡される 2 つの変数です。

基本的に、メイン クエリは検査中の機器のリストを返し、返された行ごとにネストされたクエリを実行して、以前の検査の詳細を見つけます。これは、lifting_date に対する値を持つ最新の結果を選択することによって行われます。メイン クエリからの equipment_id は、ネストされたクエリの WHERE に使用される変数です)。

そのため、ページの読み込み時間を完全に殺しています。このプロジェクトをこの状態で継承し、データベース構造を変更せずにサイト上のすべてのデータベースのやり取りを合理化しようとしていることを指摘しておく必要があります。

したがって、必要なすべての結果を 1 つのテーブルに返すようにステートメントを最適に構成する方法についてのアイデアをいただければ幸いです。ありがとうございます。

4

0 に答える 0