Рассмотрим систему отслеживания ремонта. У меня есть таблица с данными клиента и общий ключ ключа. У меня есть вторая таблица со столбцом, чтобы показать, какой тип части ремонта использовался для каждого ключа id и сколько было использовано. Их определения приведены ниже:Создание новой колонки на основе данных из существующего столбца
order_information
order_id | cust_last_name
465 Smith
899 Williams
512 Johnson
345 Fenton
122 Bowles
944 Cooper
parts_usage
order_id | part_type | part_quantity
465 Part 1 5
465 Part 2 4
899 Part 1 2
899 Part 2 8
899 Part 3 6
512 Part 3 1
345 Part 2 4
345 Part 3 5
122 Part 2 3
944 Part 1 2
Я хотел бы выполнить запрос для отчета, который будет возвращать куски Пярта разбиты так:
order_id | Part 1 | Part 2 | Part 3 | Total
465 5 4 9
899 2 8 6 16
512 1 1
345 4 5 9
122 3 3
944 2 2
Можно ли сделать это с помощью запроса так что в моих отчетах может отображаться, сколько из каждой части было использовано на каждом ремонтном билете?
Как вы можете видеть, каждый order_id
может иметь несколько типов деталей и уникальные количества. Я хочу разбить разные типы элементов (у меня 3 всего) на 3 отдельных столбца, их итоговые значения перечислены order_id
.
Что вам нужно, чтобы повернуть стол. Например, SQL Server имеет команду Pivot: http://msdn.microsoft.com/en-us/library/ms177410(v=sql.105).aspx –
Какие СУБД вы используете. SQL - это всего лишь язык, используемый многими системами баз данных. Решение, которое вы ищете, скорее всего, будет специфичным для поставщика. – GarethD
Если вы знаете, что у вас есть только три части, и они одинаковы, то перекрестная вкладка стиля 'sum (case, когда part_type = 'part 1', а затем part_quantity), поскольку Part1' должен работать - иначе более сложное решение, которое, вероятно, будет конкретный поставщик, как @GarethD. –