0

OK、ここでちょっとした難問が発生しました。

Web ページに表示したくない SQL クエリがあります。私が抱えている問題は、必要な形式で結果を表示することです。

基本的には、毎週のジョブのスケジュールで、日ごとに分割され、各インストール チームによってグループ化されます。チームごとの 1 日あたりのジョブの数は、0 から 3 または 4 までさまざまです。SQL クエリは、大きなリストのベースからジョブ データを取得します (予想どおり) - 問題はありません。

難問は、特定の形式でWebページに表示することです-これはこれです

画像

Web サーバーは IIS Windows サーバーですが、PHP がインストールされているため、ASP/VB または PHP を使用できます。

これはクエリです:

SELECT  Pers_Name
    ,   PER_Data7
    ,   Call_Ref
    ,   dbo.dateonly(Scheduled_Date_Time) AS sched_date
    ,   Link_to_Contract_Header
    ,   Add1
    ,   Add2
    ,   Post_Code
    ,   Call_Type_Description
    ,   LUCFC_Description
    ,   Call_Status_Description
FROM Calls WITH (NOLOCK)
INNER JOIN Clients WITH (NOLOCK) ON Link_to_Client = Client_Ref
LEFT JOIN Personnel WITH (NOLOCK) ON Last_Allocated_To = Pers_Ref
LEFT JOIN LU_Call_Types WITH (NOLOCK) ON Call_Type = Call_Type_Code
LEFT JOIN Personnel_More WITH (NOLOCK) ON Last_Allocated_To = PER_Link_to_Pers_Ref
LEFT JOIN LU_Call_Fault_codes WITH (NOLOCK) ON call_fault_code_1 = LUCFC_Code
LEFT JOIN LU_Call_Status WITH (NOLOCK) ON Last_Event_Status = Call_Status_Code
WHERE dbo.dateonly(Scheduled_Date_Time) BETWEEN '5 August 2013' AND '11 August 2013'
    AND Call_Type IN ('BC', 'IN')
    AND PER_Data7 IS NOT NULL
ORDER BY sched_date, PER_Data7

PER_Data7チーム名 (つまり、チーム 1、チーム 2 など) を保持するフィールドです。 sched_date仕事の日付です。

これに取り組む方法は?

私は 1 日のスケジュールだけを表示する作業バージョンを持っていますが、その構造は完全に異なり、非常に基本的であり、ジャンクされます。

4

1 に答える 1

0

私はあなたのクエリを調べて、それをテーブルと比較して、レコードが表示したい順序で出てくることを確認していませんが、そうであると仮定し、そうでない場合は、あなたが知っていると仮定しますそれらの変更を行う方法。

したがって、基本的な考え方は、結果を繰り返し処理し、各フィールドを HTML テーブルに出力することです。私は ASP を使用しているので、次のようになります。

' Make the connection etc, then...
cmd.CommandText = "SELECT field1, field2 FROM table1 etc...."
Set recordSet = Server.CreateObject("ADODB.Recordset")
recordSet.Open cmdTemp, , adOpenKeyset, adLockReadonly

' If there are results, emit the table

if not recordSet.EOF then
    Response.Write "<table><tr><td><b>Heading1</b><td><b>Heading2</b></td>...</tr>"

    ' While there is another record to process, emit each row

    do while not recordSet.EOF
         Response.Write "<tr><td>" & recordSet("field1") & "</td><td>" & recordSet("field2") & "</td>...</tr>"

         ' Get the next record

         recordSet.MoveNext
    loop

    ' Finish the table

   Response.Write "</table>"
end if

あなたの質問がクエリをどのように構築するかに関するものである場合、それはここに投稿するには大きすぎるかもしれません. テーブルの構造と実行しようとしている内容に応じて、複数のクエリ (テーブルの行ごと、列ごと、またはデータ セルごとに 1 つ) を実行する必要がある場合があります。

于 2013-08-08T16:00:22.040 に答える