В SQL Server 2012 я пытаюсь воссоздать подробную транзакционную запись транзакции из двух таблиц с исторической сводной информацией, но не может ограничивать записи на основе запуска клиента Дата. (На самом деле есть 3 таблицы, одна из которых содержит категории товаров и% продаж по категориям, но у меня нет проблем с этой частью креста). Любая помощь будет оценена по достоинству.предельные записи в кросс-соединении по дате вступления в силу
Представьте две таблицы:
Customer ID Customername Sales_Monthly Date_start 1 Acme $80,000.00 1/15/2012 2 Universal $50,000.00 1/3/2013 3 SuperMart $12,000.00 4/14/2013
Calendar ID Date 1 1 /31/2014 2 2 /28/2014 3 3 /31/2014 4 4 /30/2014 5 5 /30/2014 6 6 /30/2014 7 7 /30/2014 8 8 /30/2014 9 9 /30/2014 10 10/30/2014 11 11/30/2014 12 12/30/2014
Простой перекрестное соединение:
SELECT Calendar.Date, Customer.ID, Customer.Customername, Customer.Sales_2013
FROM Calendar, Customer
производит 36 записей, как и следовало ожидать (3 клиентов х 12 месяцев)
Однако , Я хочу только создать записи 28 записей, где [Calendar.Date]> [Customer.Date_start]
Кажется, я не могу найти WHERE CLAUSE и любой тип или подзапрос, который ограничит мои записи на основе поля Customer.Date_start. Любые предложения по этому поводу?
Основываясь на данных вашего образца, почему было бы всего 28 результатов? Все значения calendar.Date представляют собой> все значения customer.Date_Start. –
Все записи календаря>, чем дата начала с 2013 и 2012 годов. – SteveB
Сначала выберите Calendar.Date, где он больше Customer.Date_start и поместит все эти записи во временную таблицу. Затем перекрестите эту временную таблицу со своей таблицей Customer. – Khaltazar