これは単なる悪い習慣であるか、有効なやり方であるかどうかはわかりませんが、大量の複雑なレポートクエリではテーブルの束にまたがって、Case
文を合計して集計統計を得ることがよくあります。例えばSUMと同等のLINQ(ケースX = Y THEN 1 ELSE 0 END)は何ですか?
:
SELECT Contact.Name,
SUM(CASE WHEN Order.Type = 'Special' THEN 1 ELSE 0 END) AS SpecialOrders,
SUM(CASE WHEN Order.Type = 'Magic' THEN 1 ELSE 0 END) AS MagicOrders,
FROM Contact
LEFT JOIN Order ON (Contact.ContactID = Order.ContactID)
がどのようにSQLにLINQでこれを行うだろうか?
Dim Orders = _
From Order In DB.Orders
Select New With {.Name = Contact.Name,
.Special = If(Order.Type = "Special", 1, 0),
.Magical = If(Order.Type = "Magical ", 1, 0)}
(vb.netでは、私はすべての.NETの例は、どうなると思います)私は.Special
と.Magical
値を合計する必要があります。
(実際には、クエリは、イベント予約情報からなる複数のテーブルにまたがり、そのレコードを合計かどうかの決定は、それらのいくつかのフィールドに依存します)
これはC#です.OPはVB.Netに相当するものを探しています。 – JaredPar
「vb.netでは、.Netの例がやっていると思う」と彼は言った。私はVBを話さないのは残念です。 –
さらに、これはOPのSQLクエリが行う結合を実行しません。 – paqogomez