2015-01-25 4 views
0
Chemical Name QTY DOA 
------------- --- -------- 
Acetic acid  12 24-01-15 
2BL    58 22-01-15 
Action Viol  22 20-01-15 
Balmetenca  74 18-01-15 
AWH    13 13-01-15 
AWH    22 13-01-15 
Actoil   11 07-01-15 
Ammonium sulp 12 09-01-15 
Actoil 4  11 19-01-15 
Actoil ITS  24 06-01-15 
Balysyn   35 11-01-15 
Bastimol PH  14 12-01-15 
Acid Ph   17 05-01-15 
Acetic acid  12 24-12-14 
2BL    20 01-12-14 

Привет, я хочу, чтобы получить вывод о том, как много qty присутствует в каждом chemical_name как chemical_name имеет qty(13+22) я должен быть затем 25 и остальную часть химиката, как это .. (то есть), чтобы увидеть общее кол-во в каждом chemical_name я использую ниже запроса:SQL сумма запроса

SELECT Chemical_name, 
     Qty, 
     DOA 
FROM sample_chemical 
GROUP BY Chemical_name,DOA,Qty 
HAVING DOA BETWEEN '2015-01-01' AND '2015-01-30' 

но это не подведение итогов. Если я использую предложение where, то он работает нормально. Если добавляется новое химическое имя, мы не можем использовать предложение where.

ответ

1

Вы вообще не используете функцию Sum в своем запросе!

Что об этом:

Select Chemical_name, Sum(Qty), Count(Chemical_name), DOA 
From sample_chemical 
Where DOA between '2015-01-01' and '2015-01-30' 
Group by Chemical_name, DOA 

Кроме того, я дам вам совет касается: Не делайте так перепутались вопрос. Многие пользователи здесь просто дадут вам нисходящее движение, и они будут правы, потому что вам не хватает информации о том, что вам нужно, и о том, что вы уже пробовали. Вместо этого постарайтесь сделать все как можно более ясным, чтобы помочь тем, кто хочет помочь вам точно понять, каковы ваши потребности и проблемы. Разграничивая, каковы ваши фактические данные, структура вашего DB/Table, то, что именно результат, который вы хотите создать, поможет много. Просто попробуйте прочитать свой собственный вопрос, но, как будто вы не знаете свою базу данных, какое химическое вещество или количество действительно есть, и, я думаю, вы поймете, что я имею в виду.

Я также установил счетчик количества тех же самых химических веществ (для того, чтобы использовать некоторый идентификатор из таблицы sample_chemical, для лучшей производительности). :)

Удачи, и надеюсь, что я помог!

0

Вам необходимо удалить ненужные столбцы с group by и использовать sum агрегат в select.

использование Chemical_name один в group by не все columns, так как вы хотите, чтобы найти общую qty, присутствующую в каждом Chemical_name.

SELECT Chemical_name, 
     Sum(Qty) 
FROM sample_chemical 
WHERE DOA BETWEEN '2015-01-01' AND '2015-01-30' 
GROUP BY Chemical_name 

Если вы хотите в каждом Chemical_name за day общее qty, то вам нужно добавить Chemical_name и DOA в group by

SELECT Chemical_name, 
     Sum(Qty), 
     DOA 
FROM sample_chemical 
WHERE DOA BETWEEN '2015-01-01' AND '2015-01-30' 
GROUP BY Chemical_name, DOA 
Смежные вопросы