2012-03-02 4 views
0

tbl_Offerサブクエリ有することによって基とカウント

OFID bigint 
Offer_Text text 

OFID Offer_Text 
------- ----------  
1014 Test1 
1015 Test2 

tbl_TransactionDishout

offerNo TerminalID  Created 
--------------------------------- 
1014  170924690436418 2010-05-25 12:51:59.547 

tblVTSettings

gid  mid  tid 
----------------------- 
50  153  119600317313328 
104  158  160064024922223 
76  162  256674529511898 
1111  148  123909123909123 

これらはTHREありますeテーブル。

今、すべての情報(オファー)を学校ごとに分けて欲しいと思います(TerminalIDが(50,76,104)のどこにあるのか見てください)。 O/pは、これらのフィールドを持つべきである(50,76,104)


OfferID(OFID)、学校のオファーはOffer_Text、オファーがある時間の数、のためである

これらは、3つの学校です。

クエリは何とかこのようなことがあります。これを試してみてください

SELECT OFID, Offer_Text, 
    Counter = 
    (
    SELECT COUNT(*) FROM dbo.tbl_TransactionDishout t 
    WHERE t.OfferNo = CAST(OFID AS NVARCHAR(30)) 
    and t.TerminalID in 
    (select TID from tblVTSettings where gid in (50,76,104)) 
    ) 
    FROM dbo.tbl_Offer 
    Where EXISTS (SELECT * FROM dbo.tbl_TransactionDishout 
      WHERE OfferNo = CAST(OFID AS NVARCHAR(30))) 
+0

いただきました。あなたは問題? – Arion

+0

上記のクエリでOFID、Offer_Text、Counterを取得していますが、どの学校に所属していないのですか。 –

+0

@marc_s私に正しい出力を教えてください。 –

答えて

0

してください。

SELECT to.OFID 
     ,ts.gid AS 'School the offer is for' 
     ,to.Offer_Text 
     ,COUNT(to.OFID) AS 'Number of time the offer is' 
    FROM tbl_Offer to 
    JOIN tbl_TransactionDishout tt 
    ON to.OFID = tt.offerNo 
    JOIN tblVTSettings ts 
    ON ts.tid = tt.TerminalID 
+0

が動作していない...エラー実行.. –

+0

プラザあなたのエラーを投稿...我々は、クエリをテストすることはできません、 – Rajan

0

試してみてください。

SELECT o.OFID, 
     s.gid, 
     o.Offer_Text, 
     count(*) over (partition by o.OFID) number_schools, 
     count(*) over (partition by s.gid) number_offers 
    FROM tbl_Offer o 
    JOIN tbl_TransactionDishout d ON o.OFID = d.offerNo 
    JOIN tblVTSettings s ON s.tid = d.TerminalID 
+0

メッセージ156、レベル15、状態1、行4 'over'というキーワードの構文が正しくありません。 –

+0

@VishalSuthar: 'o.Offer_Text'の後にカンマがないため、修正しました。もう一度やり直してください。 –

+0

同じエラー...私はすでにコンマを訂正していました。 –

関連する問題