0

ちょっとした裏話: インポート元のスケジューリング データベースが 2 つあり、データを SQL Server にフィードします。同じ学期の同じ教室の重複したレコードが作成されることもありますが、それほど頻繁には発生しません。私がする必要があるのは、データベースを変更せずにそれらを1つの行にマージすることです(まだそれを行う権利がないため)。実行中のクエリで有効にしたいだけです。

したがって、次のデータでは、すべてのフィルタリング基準 (AcademicPeriod、BuildingNumber、RoomNumber、および DayOfWeek) がすべて同じであることがわかりますが、別の時間に使用されていることを示す 2 つの行があります。

0 = 空いている 1 = 占有されている

学期 | 建物番号 | 部屋番号 | 曜日 | 午前9時30分 | 午前9時45分 | 12:30 | 12:45p

------201401 -------------- 0001 ------------- 00015 ------------- R ---------- 0 ------- 0 -------- 1 ---------- 1---

------201401 -------------- 0001 ------------- 00015 ------------- R ---------- 1 ------- 1 -------- 0 ---------- 0---

クエリ内でこれら 2 つの行を結合して (再びテーブルを変更せずに)、単に 1 つの行にすべて「1」が含まれるようにする方法はありますか?

私はこれを理解する期限が迫っています。あなたが持っている提案を使用できます。

ありがとうございました!!!

4

4 に答える 4

1
SELECT AcademicPeriod , BuildingNumber , RoomNumber , DayOfWeek
       MAX(930A) AS 930A,
       MAX(945A) AS 945A,
       MAX(1230P) AS 1230P,
       MAX(1245P) AS 1245P

  FROM {YourResultSet} 

 Group BY AcademicPeriod, 
          BuildingNumber, 
          RoomNumber, 
          DayOfWeek
于 2013-08-28T17:04:50.547 に答える
0

この質問を試してください:

SELECT  x.AcademicPeriod, x.BuildingNumber, x.RoomNumber, x.DayOfWeek,
    MAX(x.[9:30a])  AS [9:30a], 
    MAX(x.[9:45a])  AS [9:45a], 
    MAX(x.[12:30p]) AS [12:30p], 
    MAX(x.[12:45p]) AS [12:45p]
FROM    MySchema.MyTable x
GROUP BY x.AcademicPeriod, x.BuildingNumber, x.RoomNumber, x.DayOfWeek;
于 2013-08-28T17:05:21.680 に答える
-1

データを取得する方法がわからないので、私の提案はまったくばかげている可能性がありますが、グループ関数を使用して職業列で max() 値を検索するのはどうですか?

select AcademicPeriod, BuildingNumber, RoomNumber, DayOfWeek, max(9:30a), max(9:45a), max(12:30p), max(12:45p)
from table
group by AcademicPeriod, BuildingNumber, RoomNumber, DayOfWeek

それはすべて、データをどのようにインポートするかによって異なります...詳細を教えてください。

于 2013-08-28T17:10:15.813 に答える
-1

AcademicPeriod、BuildingNumber、RoomNumber、DayOfWeekのタブグループからAcademicPeriod、BuildingNumber、RoomNumber、DayOfWeek max(9:30a)、max(9:45a)、max(12:30p)、max(12:45p)を選択

この種の問題を解決するために、テーブル選択への挿入で、上記のような構成を使用することがよくあります。

于 2013-08-28T17:07:30.613 に答える