2016-03-02 7 views
-1

У меня есть две таблицы:запросов в SQL Server

SELECT [DealerdistributionId] 
     ,[DealerCode] 
     ,[BarCode] 
     ,[BarCode2] 
     ,[Model] 
     ,[DONumber] 
     ,[DistributionDate] 
    FROM [tblDealerDistributionDetails] 

дает эти результаты

enter image description here

и другую таблицу:

SELECT [ProductRegID] 
     ,[ProductType] 
     ,[ProductModelID] 
     ,[SalerID] 
     ,[ProductID] 
     ,[PhoneNumber] 
     ,[RegistrationDate] 
    FROM [tblProductRegistration] 

результаты

enter image description here

Вторая таблица tblProductRegistration журналы ProductID из BarCode или BarCode2 из первой таблицы tblDealerDistributionDetails, но только один или BarCodeBarCode2.

Я хочу найти, у какого Дилера есть количество моделей с вводом в tblProductRegistration.

Выход: DelarCode, Model, TotalEntry в tblProductRegistration.

Я попробовал этот

select DealerCode, COUNT(*) as [Activated] 
from tblDealerDistributionDetails 
where 
(BarCode in (select ProductID from tblProductRegistration where RegistrationDate >='2016-03-01' and RegistrationDate <='2016-03-02') 
or 
BarCode2 in (select ProductID from tblProductRegistration where RegistrationDate >='2016-03-01' and RegistrationDate <='2016-03-02')) 
and Model= 'Olvio L12' group by DealerCode 

для конкретной модели 'Olvio L12', но это приводит к Perfomance issue.I нужно быстрее Perfomance

запрос с более быстрым запроса performance.Please помощи.

+0

Вы просите нас написать запрос на объединение? Что вы пробовали? Как это получилось, по результатам и с точки зрения производительности? – jarlh

+0

Да. за исключением, очевидно, заставляя нас писать ваш код, поскольку вы не хотите даже попробовать что-то. Могу ли я предложить перейти на сайт, где вы можете нанять кого-то, чтобы сделать свою работу за вас? Мы не кодирование. – TomTom

+0

Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что вы показываете, не пытаетесь и не готовы самостоятельно решить проблему, взяв stackoverflow.com для бесплатной службы кодирования. – TomTom

ответ

1
CREATE NONCLUSTERED INDEX ix_p 
    ON tblProductRegistration (RegistrationDate, ProductID) 
GO 
CREATE NONCLUSTERED INDEX ix_d 
    ON tblDealerDistributionDetails (model, DealerCode) INCLUDE (BarCode, BarCode2) 
GO 

SELECT DealerCode, COUNT_BIG(*) AS [Activated] 
FROM tblDealerDistributionDetails d 
WHERE model = 'Olvio L12' 
    AND EXISTS(
     SELECT * 
     FROM tblProductRegistration r 
     WHERE r.RegistrationDate BETWEEN '20160301' AND '20160302' 
      AND r.ProductID IN (d.BarCode, d.BarCode2) 
    ) 
GROUP BY DealerCode 
--OPTION(RECOMPILE) 
Смежные вопросы