私は、改善されたシフト管理の概要が必要な会社で働いています。彼らはExcelシートに慣れています。私は代わりにWebブラウザでソリューションを実装するつもりです。シートのフォーマットは次のようなものです:SQLクロス集計、ピボット
Employee1 Employee2 Employee3
DD/MM/YYY1 Mon Shift1 Shift2 Shift3
DD/MM/YYY2 Tue Shift2 Shift3 Shift1
DD/MM/YYY3 Wed Shift3 Shift1 Shift2
DD/MM/YYY4 Thu Shift1 Shift2 Shift3
DD/MM/YYY5 Fri Shift2 Shift3 Shift1
私の問題は今、それはこのように表示されていることです、私はASP.net 4.6.1を使用してい
Date Shift_Type_Name Employee_Name
DD/MM/YYY1 Mon Shift1 Employee1
DD/MM/YYY1 Mon Shift2 Employee2
DD/MM/YYY1 Mon Shift3 Employee3
とMicrosoft SQL Server。
興味のある方はデータベースデザインの写真を添付します。
私は、動的に各従業員のために列を追加するには、SQLクエリに焦点を当てるべき、または私はなど、この設計では、それを表示するには、リストビューテンプレートを使用すべきか?
ご協力いただきありがとうございます。私はこのコミュニティから多くの恩恵を受けました。 :)
編集: (そしておそらくこれはあなたが少し良く私の質問を理解するのに役立ちます)私は私の問題の解決策を得ている最も近いが、この擬似コードです:
SELECT
[Date].[date] AS 'Date',
FOR EACH(SELECT [Employee].* AS THIS){
SELECT [Shift_Type].[name] AS [THIS].[Name] + ' Morning',
WHERE [Shifts].[Type] = @morning_hours AND [Shifts].[Employee_fk] = [THIS].[ID]
SELECT [Shift_Type].[name] AS [THIS].[Name] + ' Evening',
WHERE [Shifts].[Type] = @evening_hours AND [Shifts].[Employee_fk] = [THIS].[ID]
}
FROM [Groups]
JOIN [Employee]
ON [Groups].[id] = [Employee].[group_fk]
JOIN [Shifts]
ON [Employee].[id] = [Shifts].[employee_fk]
JOIN [Shift_Types]
ON [Shift_Types].[id] = [Shifts].[type_fk]
RIGHT JOIN [Date]
ON [Date].[id] = [Shifts].[date_fk]
JOIN [Public_Holidays]
ON [Public_Holidays].[date_fk] = [Date].[id]
私は理解してFOR EACHはSQLサーバーのオプションではありませんが、うまくいけば、これは私が達成しようとしていることを説明します。
あなたが言うとき*データを解析する最も効率的な方法は何ですか?ソースデータのインポート方法を尋ねていますか? –
@ destination-data実際には、改善されたSQLクエリに関する提案があれば、それを聞いてみたいです! それは私が意味するものではありませんでした。 私はクエリを改善する必要があると信じられ、GridViewに自動的に表示することができました。 – LiHRaM