0

Мне нужно создать общий отчет о грузовиках в компании.Общий отчет о парах с внутренними соединениями

У меня есть эти таблицы в моей схеме:

схемы изображения:

enter image description here

В принципе, мне нужно создать таблицу, содержащую следующие:

| Местонахождение | Грузовики | TotalOfCampaings | CampaingsWithCompleteStatus | CampaingsWithInProcessStatus |

  • Расположение: Расположение грузовых автомобилей, в таблице Truck.
  • Грузовые автомобили: Количество грузовых автомобилей по месту нахождения.
  • TotalOfCampaings: Общее количество поселений по местонахождению и грузовикам.
  • CampaingsWithCompleteStatus: Общее количество завершенных Campaings, статус находится в таблице Campaing Control.
  • CampaingsWithInProcessStatus: Общее количество колодцев не закончено.

Campaing = заказ на установку одного или нескольких грузовиков.

Я пробовал с внутренними запросами на объединение, но я не могу получить то, что ожидаю от общего отчета.

Буду признателен за помощь в этом!

ответ

0
SELECT * 
FROM 
    -- Prepare the base data for the report 
    (SELECT location, COUNT(*) AS Trucks FROM Truck GROUP BY location) loc 
    -- The statistics needed, make sure it is 1 to 1 
    -- The status value just guess as you did not mention in the question 
    OUTER APPLY 
    (
     SELECT 
      COUNT(*) AS TotalOfCampaings, 
      SUM(CASE WHEN cc.campaing_status = 'Complete' THEN 1 ELSE 0 END) AS CampaingsWithCompleteStatus, 
      SUM(CASE WHEN cc.campaing_status = 'InProcess' THEN 1 ELSE 0 END) AS CampaingsWithInProcessStatus 
     FROM CampaingControl cc INNER JOIN Truck t ON cc.vin = t.vin 
     WHERE t.location = loc.location 
    ) stat 
+0

Эрик Я так ценю вашу помощь, ваш запрос работает отлично. :) – TimeToCode

+0

Эрик, еще один вопрос, мне нужно пересчитать в Колонну грузовиков, только грузовики с одним или несколькими лагерями, не имеет значения, завершены ли или нет кемпинги. – TimeToCode

+0

@TimeToCode Если вам нужно преобразовать 'NULL' в 0, вы можете использовать' ISNULL (, 0) 'в выражении' SELECT' – Eric

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