2013-06-09 3 views
0

Итак, я совершенно новой для SQL, но книга у меня из курсов я беру это бесполезно, и я пытаюсь сделать проект для указанного курса. Интернет не помог мне так много (я не знаю, с чего начать точно), поэтому я хочу попросить обе ссылки на хорошие учебники, чтобы проверить, а также помочь с очень конкретной частью запроса.SQL - сложный запрос с использованием внешних ключей

Если что-то я говорю не достаточно ясно, пожалуйста, спросите меня, чтобы объяснить! :)

Предположим, что две таблицы sale и p_sale в базе данных под названием jewel_store.

sale содержит две колонки: sale_CODE и sale_date

p_sale содержит sale_CODE, который ссылается выше sale_ID, p_ID, p_sl_quantity и p_sl_value

sale_CODE является первичным ключом sale и sale_CODE,p_ID является первичным ключом p_sale

В настоящее время p_ID не имеет большого значения, поэтому просто игнорируйте его по большей части.

p_sl_quantity является int и p_sl_value является double(8,2). Первый - это количество купленного продукта, а второе - значение PER UNIT продукта.

Как очевидно, очевидно, что sale_CODE может быть связан с множеством записей в таблице p_sale (пример для sale_CODE 1, у меня есть 2 записи в p_sale).

Все это основано на том, что я получил от задачи и правильно реализован и имеет некоторые примерные значения.

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

SELECT SUM(p_sl_value * p_sl_quantity) AS sales_monthly_income, p_sale.sale_CODE FROM jewel_store.p_sale GROUP BY p_sale.sale_CODE

Это, вероятно, на полпути через, как я могу получить полные деньги продажи сгенерированных для магазин. Поэтому мой следующий шаг состоял в том, чтобы использовать этот запрос и SELECT. Я перепутал это пару раз, и теперь я почесываю голову. То, что я сделал так:

SELECT 
    SUM(sales_monthly_income), 
    sales_monthly_income, 
    EXTRACT(MONTH FROM jewel_store.sale.sale_date) AS sales_month 
FROM (
SELECT 
    SUM(p_sl_value * p_sl_quantity) AS sales_monthly_income, 
    sale_CODE 
FROM jewel_store.p_sale 
GROUP BY sale_CODE 
) as code_income, jewel_store.sale 
GROUP BY sales_month 

Во-первых, мне нужно только напечатать total_montly_income и month столбцы в моей окончательной форме, но я использовал это, чтобы уточнить, что все пошло не так, там. Я думаю, мне нужно каким-то образом использовать внешний ключ, который ссылается на другой стол, но моя книга совершенно бесполезна, помогая мне. Я хотел бы кто-то, чтобы объяснить, почему это так, и что право один будет и пожалуйста указать мне хороший PDF, сайт или что-нибудь, чтобы узнать, как сделать этот вид материала. (Я проверил w3schools, это хорошо для основы, но не слишком продвинутые вещи)

Заранее спасибо!

+2

Я [рекомендовать ** не ** перейти к W3Schools] (http://www.w3fools.com/) .... –

+0

я знаю, что, но для SQL вещи, как представляется, хорошо, плюс я могу действительно использовать форматирование списка, помогает! Тем не менее, мне нужны лучшие ресурсы, чем W3SCHOOLS! ;) –

ответ

1

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

SELECT 
    SUM(p.p_sl_value * p.p_sl_quantity) AS sales_monthly_income, 
    month(s.sale_date) 
FROM p_sale p 
inner join sale s on s.sale_code = p.sale_code 
GROUP BY MONTH(s.sale_date) 
+0

Работает как очарование! Все еще ищете некоторые справочные материалы о том, как использовать внешние ключи, но я думаю, что понимаю немного больше сейчас! Большое спасибо! –

Смежные вопросы