2012-03-05 3 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

Msg 306, уровень 16, состояние 2, строка 4 текст, NTEXT и типы данных изображения не могут быть сравнены или сортируют, кроме случаев, когда используя оператор IS NULL или LIKE. –

+0

Вы можете показать свою структуру таблицы, это идентификатор текста? – Vikram

+0

Нет ... Offer_Text - это текст, а OfferNo также является тестом ... –

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, Уровень 16, Состояние 1, Строка 2 Столбец 'tbl_Offer.OFID' недействителен в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. –

+0

есть. для этого вместо использования прямого имени столбца вы можете использовать имя псевдонима как t для tbl_Offer, t1 для другой таблицы и сделать соединение. – Java

+0

Вам нужно добавить предложение group by. –

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 

EDIT:

Ниже приводится выходной экран, когда I tr это в моей системе.

enter image description here

+0

вам нужно добавить предложение group by. Это заявление вызовет ошибку. –

+0

Msg 8120, уровень 16, состояние 1, строка 1 Столбец 'tbl_Offer.OFID' недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. –

+0

@ VishalSuthar, еще раз проверьте отредактированный запрос. –

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. –

+0

Проверьте сейчас. Я отредактировал ответ.можете ли вы показать свою структуру таблицы, является предложениеNo и OFID текст? –

+0

Msg 306, уровень 16, состояние 2, строка 6 Невозможно сравнить или отсортировать типы данных текста, текста и изображения, за исключением случаев использования оператора NULL или LIKE. –

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 
Смежные вопросы