私はしばらくこの問題に取り組んできましたが、私は仕事をするための実例を見つけることができませんので、私は専門家にうまく向いています。助けを求めて事前に感謝します。SQLを左に変換するJOINをLinqに変換
私はLinqに変換する必要がある動作中のSQLクエリを持っています。最初は、リスト内のアイテムの日々のランキングを示したMSChart(折れ線グラフ)を駆動する簡単なlinqクエリがありました。残念ながら、MSChartは、チャートからNull値で日付を削除しませんが、Null以外の値で翌日に接続するだけなので、nullを0に置き換える必要があります。
次のクエリでは、テーブルに対するLeft、Self Joinを使用してこれを実行します。ここでは、別の日のリスト(すべての日を含む)を取得します。私は、すべての日の一覧を含む付帯テーブルを設定することもできることを知っていますが、これはすべてのケースで同様に効果的でなければなりません。特定の書籍/リストの組み合わせについてSSMSで完璧な作品を以下のSQL:
select L2.date, ISNULL(L1.ranking,0)
from (select distinct date from ListItem where ListID = 1) L2
Left join ListItem L1 on L2.date = L1.date and L1.BookID = 1 and L1.ListID = 1
order by date
これは何の順位が存在しない任意の日付の0ランク付けして、すべての日付とランキングのリストを返します。チャートをこれに結びつけるために、私はLinqへの変換が最良のコースだと信じています。
私はこれまでのところ私の試みを掲示するだろうが、彼らはひどく間違っていることを恐れている。それ以上の情報が必要な場合は、私に知らせてください。
ありがとうございました。
-ダン
これは私が「ランキング= li1.ranking ?? 0」に参加の最後の行にエラーを取得してい除き、非常に近くに見えます。 "演算子" ?? "は、 'int'型または 'int型'のオペランドには適用できません。 – nycdan
これは、" ranking = li1.ranking "の前に(int? 0 "に設定されていますが、前回と同じセットが返されます。ヌル日付はセットから抜けていますが、悪くはありませんが、それでも構いませんので、近いと思われます。 – nycdan
、私はついにこれを得たことに気付きました。 – nycdan