0

学習用の列車予約の小さなデータベースを使用してasp.netWebアプリを作成しています。私はちょうどasp.netの学習段階にあるので、私の間違いを許してください。

状況: Train_No、1AC-Berths、2AC_Berths、3AC_Berthsの列を持つ2つのテーブル1stTrain_Detailsがあります。2番目のテーブルは、Train_No、Class_Type列(ユーザーが1AC、2AC、または3ACから選択)のPassenger_Detailsです。

問題:以下に説明する列を使用してクエリを作成しようとしています

Train no      Date of journey            Status (Template field)

ABC           18/03/2013                    
                                                 1AC : 
                                         2AC :
                                         3AC  :

Xyz         18/03/2013                1AC : 
                                      2AC :
                                      3AC :

要件:[ステータス]列で、1ACラベルに{カウント番号を表示する必要があります。列車番号、DOJ、およびクラスが1ACとして一致し、番号として表示されるPASSENGERS_Detailテーブルの行の数}。2ACと3ACでも同じ状況です。1AC、2AC、および3ACのすべてのラベルは、すべての列車についてのみステータス列に表示される必要があります。

4

1 に答える 1

0

あなたの投稿には、どこDate of journeyから来たのかなど、いくつかの情報がありません。だからあなたの限られた情報で私は思いついた:

SELECT
  p.Train_No, 
  CASE
    WHEN p.Class_Type = 1 THEN '1AC: '
    WHEN p.Class_Type = 2 THEN '2AC: '
    WHEN p.Class_Type = 3 THEN '3AC: '
  END + CAST(COUNT(p.Class_Type) AS NVARCHAR(50)) AS Status
FROM Train_Details AS t
JOIN Passenger_Details AS p
  ON p.Train_No = t.Train_No
GROUP BY p.Train_NO, p.Class_Type;

SQL フィドル

編集:

C# コードでも Class_Type を変換する必要があります。

SELECT
  p.Train_No, 
  p.Class_Type,
  COUNT(p.Class_Type) AS Status
FROM Train_Details AS t
JOIN Passenger_Details AS p
  ON p.Train_No = t.Train_No
GROUP BY p.Train_NO, p.Class_Type;
于 2013-03-10T12:31:32.353 に答える