сумма затрат, потраченных на рекламу в конкретном журнале (месяц?, год?)

#sql #oracle

#sql #Oracle

Вопрос:

Вот таблицы // спасибо за исправление моего формата//

 ADV_COST
--------
PAGE_SIZE  
MAG_ID  
COST

//SAMPLE DATA ADV_COST//  
PAGE_SIZE                MAG_ID       COST
-------------------- ---------- ----------
1/25 PAGE                     1         40  
1/8  PAGE                     1         60  
1/6  PAGE                     1         65  
...


ADS
--------
AD_ID  
ADV_ID  
PAGE_SIZE  
MAG_ID  
START_DATE  
PURCH_DATE  
NUM_ISSUES



//SAMPLE DATA ADS//  
     AD_ID     ADV_ID PAGE_SIZE     MAG_ID START_DAT PURCH_DAT NUM_ISSUES
---------- ---------- ---------- ---------- --------- --------- ----------
         1          5 1/4 PAGE           1 01-APR-11 01-MAR-11         4
...
  

Вот вопрос:
Whirlpool ADV_ID=6; ДОМА: MAG_ID=1;

«Сколько денег Whirlpool потратила на рекламу в ДОМАХ в этом месяце?, в этом году?»

помогите, пожалуйста, спасибо!

Это то, что я пробовал.

 SQL> SELECT SUM(COST)  
  2  FROM DVD_ADV_COST A, DVD_ADS B  
  3  WHERE A.MAG_ID = B.MAG_ID  
  4  AND B.ADV_ID = 6  
  5  AND B.MAG_ID = 1;  
  

Комментарии:

1. Были ли у вас проблемы при попытке задать вопрос в хорошем формате? tkyte.blogspot.com/2005/06/how-to-ask-questions.html

2. Исправлено форматирование кода для вас. Ссылки на будущее: Строки в вопросах с отступом в четыре пробела будут отформатированы как блоки кода (или выделите текст и щелкните { } значок в редакторе). Тем не менее, не могли бы вы поделиться тем, что вы пробовали? Вы понятия не имеете, с чего начать?

3. Является ли поле затрат для каждого выпуска? В месяц? Сколько выпусков в месяц?

4. Я бы предположил, что вам также следует объединить A и B в PAGE_SIZE в вашем предложении WHERE

5. Приведенный мной sql-код выполняется, но он ничего не добавляет. Я еще не пробовал делать промежуточные даты

Ответ №1:

Попробуйте

 SELECT SUM(B.COST * A.NUM_ISSUES) AS TOTAL_COST
  FROM DVD_ADS A, 
       DVD_ADV_COST B
 WHERE B.MAG_ID = A.MAG_ID
   AND B.PAGE_SIZE = A.PAGE_SIZE
   AND A.ADV_ID = 6
   AND A.MAG_ID = 1
  

а затем добавьте свой диапазон дат также в предложение WHERE

Если он не возвращает никаких данных, убедитесь, что у вас действительно есть записи для ADV_ID = 6 …. в вашем примере показана запись для 5

Комментарии:

1. Называются ли таблицы DVD_ADS и DVD_ADV_COST или ADS и ADV_COST

2. dvd_ads и dvd_adv_cost; Я сократил их, чтобы всем было проще вводить

3. Я только что проверил данные в таблице ads, и там нет adv_ids, которые = 6. Вот почему это ничего не добавляет..