0

次の形式で Excel に保存されているレーシング ラップ タイムの行が多数あります。

1:32.9

この例は、ラップタイムが 1 分 32 秒 0.9 であることを意味します。

私のデータを保存するために、値をExcelでテキストとしてフォーマットしておき、nvarchar(25)としてフォーマットされたフィールドに(いくつかの新人Excel VBAコードを介して)SQL azure dbにアップロードしています。

値に対して数学的計算を実行したい。主に基本的な算術関数、平均、いくつかの簡単な統計分析。

これを踏まえて、このデータを処理するための提案は何ですか? この時点で SQL の知識が限られているため、次のオプションを確認できます。

  1. 何らかの方法で値をすべての秒に変換し (上記の例は 92.9 秒になります)、10 進数としてフォーマットされた SQL 列に格納します (T-SQL でこれを実行してビューを作成することはできますか?)

  2. どういうわけか値を時間形式のフィールドに変換しますが、これを行うと計算オプションがどうなるかわかりません

アップロード処理中に Excel vba または T-sql に翻訳を組み込むことができますが、それをビュー定義に組み込んでそこからレポートを実行できれば素晴らしいと思います。

これを処理する正しい方法の提案はありますか? ありがとう。

4

1 に答える 1

2

私はExcelの式を介してそれを行い、値を別のExcelシートの列に設定してから、SQLテーブルにロードします.

これが不可能な場合は、データをテーブルにロードしてから、次のクエリを適用するビューを定義できます。

WITH DummyData AS
(
  SELECT '1:32.9' TimeText -- This can be replaced with the table that you loaded.
)
SELECT CAST(
        DATEPART(mi, '00:' + TimeText) * 60 +
        DATEPART(ss, '00:' + TimeText)
         AS VARCHAR
        )+ '.' +
       CAST( DATEPART(ms, '00:' + TimeText) AS VARCHAR)
  FROM DummyData

SQLFiddle: http://sqlfiddle.com/#!3/d41d8/2349/0

于 2012-07-05T23:12:18.383 に答える