Я довольно новичок в SQL, и я пытаюсь разобраться в следующей проблеме: я пытаюсь получить список продуктов с разбивкой, чтобы мы могли видеть, сколько из них один был продан каждый годЕжегодно количество продуктов разбивается
У меня есть две таблицы; Заказы (содержащие JobNum и Date) и Products (с полями JobNum, Fig, Fype, Size и Quantity). Из-за продуктов, изготовленных на заказ, продукт является объединением полей fig, type и size. Например: Для того, чтобы получить список всех вариантов продукта, созданных я могу сделать:
SELECT DISTINCT Fig,
Type,
Size
FROM Product;
А чтобы получить список величин для всех продуктов, производимых в течение календарного года этот запрос, кажется, работает: (дата формат «дд-мм-гггг», следовательно, в LIKE «% 2002» для фильтрации по годам)
SELECT product.fig,
product.type,
product.size,
Sum(product.qty) AS Quantity
FROM orders.dbf
INNER JOIN product.dbf
ON orders.jobnum = product.jobnum
WHERE orders.date LIKE '%2002'
GROUP BY product.fig,
product.type,
product.size
Что дает данные на 1 год, выводимый как это:
Fig Type Size Qty
AA B 2 1
Мой вопрос, как я могу вытащите данные, чтобы получить выход вроде этого?
Fig Type Size 2001 2002 2003...
AA B 2 1 2 4
BB C 4 4 6 7
Я могу подумать, как это сделать в программе, но я хотел бы посмотреть, можно ли это делать только в SQL?
Большое спасибо заранее.
EDIT. Могу ли я указать, что Product.Type может быть пустым в некоторых случаях и через несколько лет можно продавать нулевые экземпляры продукта, поэтому в течение этого года соответствующая величина количества может быть пустым или 0.
какая база данных вы используете? MSSQL, MySQL, PostgreSQL, Oracle, DB/2? – bernhardrusch
Его база данных DBASE. Мы собираемся переместить все данные в MSSQL, но этот пока еще не сделал скачка. – Lambdafive
На MSSQL вы можете использовать оператор PIVOT для выполнения того, что хотите. В DBASE я понятия не имею. Насколько велик набор данных? Рассматривали ли вы группировку по годам в дополнение к рис., Типу и размеру, а затем копирование данных в Excel, например, где вы можете легко сворачивать данные по годам по столбцам? – Dan