IDごとに複数の日付を見つける効率的な方法

MyDaftQuestions

MsSQL Expressデータベースにクエリを実行して、複数の日付が関連付けられているすべてのCompanyIDを見つけようとしています。複数の日付を言うときは、異なる日数である必要があることを指摘する必要があります。

例えば

ID    UkDate        CompanyId
1    01/01/2015      16
2    01/01/2015      16
3    03/01/2015      18
4    05/01/2015      19
5    06/01/2015      20
6    08/01/2015      20

上記の例では、ComapnyID 20の行のみが返されます。これは、複数回発生し、それらの時間が日付を超えているためです(companyId 16には複数のエントリがありますが、両方のエントリが同じ日付であることに注意してください)。

Linqを使用してこのクエリを作成する方法がわかりません。私のオブジェクトはすでにありますがIQueryable<T>、コードを実行せずにクエリを実行し、クエリを「終了」する方法がわかりません。

私はVisualStudioの近くにいませんが、コードは次のようになります(入力エラーはご容赦ください、これはメモリからのものです)

//First, grab unique CompanyIds as this removes those who didn't visit multiple times
var uniqueIds = (from d in this._database.MyTable 
                 select companyId).Distinct(); 


//This is the problem because on each iteration I'm re-querying the database! 
foreach(var id in uniqueIds) 
{
    var result = (from d in this._database.MyTable.OrderBy(a=>a.UkDate)
                  where d.CompanyId==id
                  select d);
   //check for nulls  

   if (result.First(a=>a.UkDate.Day) != result.Last(a => a.UkDate.Day)                      
   {
         this.AllResultsList.AddRange(results);
   } 
}

エラーなしで動作しますが、コードが正しいとは感じません。ハックのように感じられ、非効率的ですが、これが私の最善の努力でした。データベース要求の数を減らして同じ結果を達成する方法はありますか?

マットゴードン
var results = (from o in this._database.MyTable
                           group o by o.CompanyId into grouped
                           where (grouped.Max(s => s.UKDate) - grouped.Min(s => s.UKDate)).TotalDays > 0
                           select grouped.Key);

編集(OPによる)

最終結果:

var results = (from o in this._database.MyTable
                       group o by o.CompanyId into grouped
                       where (Convert.ToDateTime(grouped.Max(s => s.UKDate)) - Convert.ToDateTime(grouped.Min(s => s.UKDate))).TotalDays > 0
                       from l in myTable
                       where l.CompanyID == grouped.Key
                       select l).ToList();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

各日付の最大速度を見つける効率的な方法

分類Dev

数値範囲のビットごとの OR を効率的に見つける方法

分類Dev

最小の時刻と日付のスタンプを見つける効率的な方法は何ですか?

分類Dev

OracleSQL-2つの日付間の有効な変更の最終日を効率的に見つける

分類Dev

曜日ごとに範囲内の日付を見つけるGroovyの方法

分類Dev

Pythonで各IDごとの日付の違いを見つける方法は?

分類Dev

行ごとに2つの日付の間の行を見つける方法

分類Dev

Numpy:行ごとの共通要素を効率的に見つける

分類Dev

2 つの行列を行ごとに効率的に掛ける方法

分類Dev

Rdata.tableに複数の列ペアを貼り付ける効率的な方法

分類Dev

パンダ-日付ごとに異なる値を数える-より効率的な方法は?

分類Dev

2つの日付の間にカバレッジを持つ従業員を見つけるためのより効率的な方法

分類Dev

MySQLを使用して、期間ごとのavg(data)を見つける最も効率的な方法は何ですか

分類Dev

歴史的な変更を伴うデータセットで特定の日付の値を見つける効率的な整然とした方法

分類Dev

最大間隔数がPythonと重複するポイントを見つける最も効率的な方法

分類Dev

Rプログラミング:特定のIDを指定して、2つの連続する日付ごとに値の差を見つける方法

分類Dev

複数の結合で欠落している行を見つける効率的な方法

分類Dev

年ごとの値の平均を見つける(日付全体ではない)

分類Dev

2つの数値の合計を見つける最も効率的な方法

分類Dev

有効な日付を見つける

分類Dev

発効日との一致率を見つけるSQL

分類Dev

素数を見つける効率的な方法

分類Dev

次の金曜日を効率的に見つける13日の金曜日

分類Dev

Rで複数の日付値を再コード化する効率的な方法

分類Dev

重複する間隔を効率的に見つける方法は?

分類Dev

日付の順序に関係なく、増加率と差異を見つける(Pythonの場合)

分類Dev

相互に排他的な整数のキーが与えられた場合、複数の辞書値の最小合計を見つける効率的な方法は何ですか?

分類Dev

rを使用して、グループIDを条件とする単一の列で複数の日付間の間隔を見つける方法は?

分類Dev

double 値の小数点以下の桁数を見つける効率的な方法

Related 関連記事

  1. 1

    各日付の最大速度を見つける効率的な方法

  2. 2

    数値範囲のビットごとの OR を効率的に見つける方法

  3. 3

    最小の時刻と日付のスタンプを見つける効率的な方法は何ですか?

  4. 4

    OracleSQL-2つの日付間の有効な変更の最終日を効率的に見つける

  5. 5

    曜日ごとに範囲内の日付を見つけるGroovyの方法

  6. 6

    Pythonで各IDごとの日付の違いを見つける方法は?

  7. 7

    行ごとに2つの日付の間の行を見つける方法

  8. 8

    Numpy:行ごとの共通要素を効率的に見つける

  9. 9

    2 つの行列を行ごとに効率的に掛ける方法

  10. 10

    Rdata.tableに複数の列ペアを貼り付ける効率的な方法

  11. 11

    パンダ-日付ごとに異なる値を数える-より効率的な方法は?

  12. 12

    2つの日付の間にカバレッジを持つ従業員を見つけるためのより効率的な方法

  13. 13

    MySQLを使用して、期間ごとのavg(data)を見つける最も効率的な方法は何ですか

  14. 14

    歴史的な変更を伴うデータセットで特定の日付の値を見つける効率的な整然とした方法

  15. 15

    最大間隔数がPythonと重複するポイントを見つける最も効率的な方法

  16. 16

    Rプログラミング:特定のIDを指定して、2つの連続する日付ごとに値の差を見つける方法

  17. 17

    複数の結合で欠落している行を見つける効率的な方法

  18. 18

    年ごとの値の平均を見つける(日付全体ではない)

  19. 19

    2つの数値の合計を見つける最も効率的な方法

  20. 20

    有効な日付を見つける

  21. 21

    発効日との一致率を見つけるSQL

  22. 22

    素数を見つける効率的な方法

  23. 23

    次の金曜日を効率的に見つける13日の金曜日

  24. 24

    Rで複数の日付値を再コード化する効率的な方法

  25. 25

    重複する間隔を効率的に見つける方法は?

  26. 26

    日付の順序に関係なく、増加率と差異を見つける(Pythonの場合)

  27. 27

    相互に排他的な整数のキーが与えられた場合、複数の辞書値の最小合計を見つける効率的な方法は何ですか?

  28. 28

    rを使用して、グループIDを条件とする単一の列で複数の日付間の間隔を見つける方法は?

  29. 29

    double 値の小数点以下の桁数を見つける効率的な方法

ホットタグ

アーカイブ