Столбец группы SQL, где другой столбец равен - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь выбрать некоторую информацию из базы данных.Я получаю базу данных с такими столбцами, как:

Идентификатор, Имя, Длина, Ширина, Количество, Запланировано

Данные таблицы следующие:

+-----------+-----------+---------+---------+------------+---------+
|   Ident   |   Name    | Length  | Width   | Quantity   | Planned |
+-----------+-----------+---------+---------+------------+---------+
|   12345   | Name1     | 1500    |    1000 |         20 |       5 |
|  23456    | Name1     | 1500    |    1000 |         30 |      13 |
|  34567    | Name1     | 2500    |    1000 |         10 |       2 |
|  45678    | Name1     | 2500    |    1000 |         10 |       4 |
|  56789    | Name1     | 1500    |    1200 |         20 |       3 |
+-----------+-----------+---------+---------+------------+---------+

мой желаемый результат, будетбыть для группировки строк, где «Имя, длина и ширина» равны, суммировать «количество» и уменьшить его на сумму «запланировано», например:

- Name1,1500,1000,32 --- (32 because (20+30)-(5+13))
- Name1,2500,1000,14 --- (14 because (10+10)-(2+4)))
- Name1,1500,1200,17

теперь у меня возникли проблемы, как сгруппировать или присоединитьсяэти данные, чтобы получить желаемый выбор.Может быть, некоторые из вас могут мне помочь .. если требуется дополнительная информация, пожалуйста, напишите это в комментарии.

Ответы [ 2 ]

3 голосов
/ 06 июня 2019

Вы можете достичь этого, сгруппировав таблицу и вычтя суммы Quantity и Planned.

select
     Name
    ,Length
    ,Width
    ,sum(Quantity) - sum(Planned)
from yourTable
group by Name,Length,Width
0 голосов
/ 06 июня 2019
select 

A1.Name,A1.Length,A1.Width,((A1.Quantity + A2.Quantity) -(A1.Planned+A2.Planned))

from `Table` AS A1, `Table` AS A2

where A1.Name = A2.Name and A1.Length = A2.Length and A1.Width = A2.Width

group by (whatever)

То есть вы сравниваете эти столбцы в одной таблице?

...