SQL запрос ежедневные продажи в месяц конкретного продукта

I’ve got a query which gets the lists of customers who’ve made a purchase of the product for the current day

select Customer.customerName, sum(InvoiceDetail.itemPrice * InvoiceDetail.itemQuantity) as dailyPurchase from Invoice
inner join InvoiceDetail on Invoice.invoiceID = InvoiceDetail.invoiceID
inner join Customer on Invoice.customerID = Customer.customerID
inner join Item on InvoiceDetail.itemID = Item.itemID
inner join Branch on Branch.branchID = Invoice.branchID
inner join Region on Region.regionID = Branch.regionID
where 
Invoice.inactive = 0 and InvoiceDetail.inactive = 0
and Item.itemTypeID = 3
and Region.regionCode = 'CR'
and cast(Invoice.invoiceDate as date) = convert(date, '01/08/2016', 103)
group by Customer.customerName

Что мне нужно, так это таблица со списком всех дат в текущем месяце, перечисляя всех клиентов, которые хотя бы раз купили продукт. Это должно напоминать что-то похожее на это изображение здесь .

Любая помощь о том, как начать работу или общее представление о том, как получить желаемый результат, очень ценится. Спасибо!

Пример данных из результатов:

customerName                dailyPurchase
AGH COMMUNICATIONS          450.00
ARIEL AMARCORD SHOP         285.00
AKN COMMUNICATION           300.00
AWSDAC TELECOMMUNICATION    2850.00
BARLEY MOBILE & SERVICES    285.00

Структура таблицы-извините, я не знаю более простого способа скопировать это.

1 ответ

  1. Сначала получите клиентов, которые приобрели продукт по крайней мере один раз в этом месяце вместе с датой.
    Затем используйте pivot, чтобы получить результат в нужной форме (как показано на рисунке). Поиск stackoverflow для pivot в sql server, вы получите хорошую информацию.

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