アイテムを送受信する日付を追跡するテーブル(tbl_MatterItem)がDBにあります。送信または受信されていない場合、値はNULLです。特定のアイテムのBillingLawyerを取得するために、私がリンクしている別のテーブル(tbl_Matter)があります。複数のSQLカウント
BillingLawyer ItemSent ItemReceived
------------- -------- ------------
Alison 09/09/09 NULL
Alison 10/10/10 NULL
Alison 11/11/11 13/11/11
Alison 12/12/12 NULL
各弁護士の名前、送信されたアイテムの数、および受け取ったアイテムの数で1つの行を検索したいと思います。以下は
BillingLawyer Sent Received
------------- ----- --------
Alison 4 1
私がこれまで持っているものです。
私の結果は、余分なレコードに表示さしかしSELECT BillingLawyer,
(SELECT COUNT(DISTINCT itemSent)FROM tbl_matteritem mit WHERE itemid=2 AND itemSent IS NOT NULL AND mit.ItemSent= mi.itemSent) AS [Sent],
(SELECT COUNT(DISTINCT itemReceived)FROM tbl_matteritem mitm WHERE itemid=2 AND itemReceived IS NOT NULL AND mitm.itemreceived = mi.itemreceived)AS Received
FROM tbl_matteritem mi JOIN tbl_matter m ON mi.matterid = m.matterid
GROUP BY BillingLawyer, ItemSent, itemreceived
ORDER BY 1
、何ビット値?:
BillingLawyer Sent Received
------------- ---- --------
Alison 0 0
Alison 1 1
Alison 1 0
Alison 1 0
Alison 1 0
Iの任意のアイデアのように見えます間違っていますか?
+1ベストソリューションimho。 'else 0'を省略することができます。' else'を指定しないと、不一致の 'case'が' null'を返します。 – Andomar
ありがとうございます。私は通常、あまりにも明らかにするためにゼロにしておきます:) –
パーフェクト、ありがとう!!! – JGow