2013-07-10 4 views
0

Привет Ниже мой пример таблицы «tbltemptransaction» & «tblProduct»Sql Четкая и подсчитывать

tbltemptransaction table  

userid pid pname description qty 
3 1 HP PROBOOK 4440S Intel Core i5 5 
3 1 HP PROBOOK 4440S Intel Core i5 3 
3 6 DocuPrint C1110B 16ppm black 2 
3 2 iMac 21.5"   Intel Core i5 3 
tblProduct table 

PID PName     Qty Description UnitPrice 
1 HP PROBOOK 4440S 20 Intel Core i5 2300 1  
2 iMac 21.5"   20 Intel Core i5 3999 2  
3 NEC V260 Projector 10 2700 lumens 2899 3  
4 DES-1228P Web Smart  10 24-Port  899 5  
5 DES-1210 Series   5 8-Port Web  699 5  
6 DocuPrint C1110B 15 16ppm black 899 4 

В таблице, где UserID = 3, что я могу получить прямо сейчас, где работает мой SQL это походит на это.

pid pname     description qty 
    1 HP PROBOOK 4440S Intel Core i5 5 
    1 HP PROBOOK 4440S Intel Core i5 3 
    6 DocuPrint C1110B 16ppm black 2 
    2 iMac 21.5"   Intel Core i5 3 

Могу ли я знать, как код, чтобы сделать его похожим на таблицу ниже?

pid pname     description qty 
    1 HP PROBOOK 4440S Intel Core i5 8 
    6 DocuPrint C1110B 16ppm black 2 
    2 iMac 21.5"   Intel Core i5 3 

Если pid тот же, то qty будет суммироваться вместе.

Спасибо.

ответ

1

Когда pid, pname и description такие же (как в вашем примере), то group by объединит эти результаты в одну строку.

select t.pid, t.pname, t.description, sum(t.qty) as qty 
from tbltemptransaction t 
group by t.pid, t.pname, t.description 

Редактировать

select t.pid, sum(t.qty) as qty 
from tbltemptransaction t 
where pid = @userid 
group by t.pid 

@user идентификатор параметра для сессии ("USERID")

Окончательная Обработать

select t.pid, p.pname, p.description, sum(t.qty) as qty 
from tbltemptransaction t 
inner join tblproducts p on p.pid = t.pid 
where t.userid = 3 
group by t.pid, p.pname, p.description 
+0

Hi Gzaxx благодарит за ваш ответ. На самом деле мое поле pname относится к другому вызову таблицы tblproducts. Могу ли я узнать, как выбрать данные из двух таблиц, где pid = session («userid»), и если pid равна сумме qty. –

+0

Проверьте мой отредактированный ответ. – gzaxx

+0

очень сожалею о invoienience, я думаю, что сейчас задаю неправильный вопрос. Фактически таблица i показывает только, что данные в основном поступают из двух таблиц tblproduct & tbltemptransction. Результат, который мне нужен, на самом деле, если userid = 3 и pid одинаковы, тогда qty для одного и того же продукта будет суммироваться. Вопрос редактирования указан выше. Спасибо –

0
select sum(qty) as qty, pid, pname, description from 
tbltemptransaction group by pid,pname, description 
0

попробуйте это и посмотрите

Select distinct t1.pid,t1.name,t1.description,sum(t2.total2) From 
(select pid,name,description,count(qty) as total1 from tbltemptransaction) as t1 
left join (select COUNT(qty) as total2 from tbltemptransaction) as t2 
on t1.pid=t2.pid 
group by t1.pid,t1.name,t1.description 
Смежные вопросы