2012-03-05 68 views
0

tbl_TransactionDishout加入查詢用於獲取計數

Trnx_id offerNo TerminalID  Created     VirtualCard 
------------------------------------------------------------------- 
1   1014  170924690436418 2010-05-25 12:51:59.547 1234567890 
2   1014  123924690436418 2010-05-23 12:51:59.547 1234567890 
3   1015  144524690436418 2010-05-23 12:51:59.547 1234567890 

tbl_Offer

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

現在我所要的輸出是這樣的:

OFID Offer_Text  Counter 
------------------------------ 
1014 Test1   2 
1015 Test2   1 

是否有可能與單個查詢..?

回答

1

試試這個:

select t2.OFID, cast(t2.Offer_Text as varchar(max)), Count(*) 
from tbl_TransactionDishout t 
inner join tbl_Offer t2 on cast(t.offerNo as varchar(max)) = cast(t2. OFID as varchar(max)) 
group by t2.OFID, cast(t2.Offer_Text as varchar(max)) 
+0

消息306,級別16,狀態2,4號線 文本,ntext和圖像數據類型不能比較或排序,除非使用IS NULL或LIKE運算符。 – 2012-03-05 07:18:33

+0

你可以顯示你的表格結構,是一個文本? – Vikram 2012-03-05 07:21:19

+0

不... Offer_Text是一個文本,OfferNo也是測試... – 2012-03-05 07:23:32

0

試試這個,它會工作

select t1.OFID,t1.Offer_text, count(t2.offerNo) 
from tbl_Offer t1 inner join tbl_TransactionDishout t2 
on t1.OFID= t2.offerNo 
group by t1.OFID,t1.Offer_text 
+0

Msg 8120,Level 16,State 1,Line 2 列'tbl_Offer.OFID'在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句中。 – 2012-03-05 07:20:26

+0

是的。爲了不用直接的列名,你可以使用alias name作爲t的tbl_Offer,t1作爲另一個表並進行連接。 – Java 2012-03-05 07:24:26

+0

您需要添加group by子句。 – 2012-03-05 07:26:25

1

你可以這樣寫

SELECT  O.OFID, O.Offer_Text, COUNT(t.offerNo) AS Counter FROM tbl_Offer AS O 
INNER JOIN tbl_TransactionDishout AS t ON O.OFID = t.offerNo GROUP BY O.OFID, O.Offer_Text 

編輯:

以下是輸出屏幕截圖當我tr ied它在我的系統中。

enter image description here

+0

你需要添加group by子句。該聲明將引發錯誤。 – 2012-03-05 07:21:33

+0

消息8120,級別16,狀態1,行1 列'tbl_Offer.OFID'在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句中。 – 2012-03-05 07:22:15

+0

@VishalSuthar,再次檢出編輯後的查詢。 – 2012-03-05 07:36:11

0
select a.offerNo,Offer_Text,COUNT(a.TerminalID) as Counter 
from 
tbl_TransactionDishout a, 
tbl_Offer b 
where a.OFID = b.OFID 
group by OFID,Offer_Text; 
+0

Msg 306,Level 16,State 2,Line 6 除了使用IS NULL或LIKE運算符時,不能比較或排序文本,ntext和圖像數據類型。 – 2012-03-05 07:21:51

+0

立即檢查。我編輯了答案。你可以顯示你的表格結構,是offerNo和OFID文本嗎? – 2012-03-05 07:25:19

+0

消息306,級別16,狀態2,行6 除非使用IS NULL或LIKE運算符,否則不能比較或排序文本,ntext和圖像數據類型。 – 2012-03-05 07:27:53

0

嘗試此查詢

select OFID, Offer_Text, Trnx_id as Counter from tbl_offer left join tbl_TransactionDishout on transactionDishout.offerNo = tbl_Offer.OfferText ordered by Trnx_id desc