nsshinde Ответов: 1

Как мне...пожалуйста, ответьте, что я хочу выполнить соединение по вышеуказанным запросам, поэтому я сделаю сравнение в своем проекте о опубликованной рекламе и опубликованных новостях


ВЫБИРАТЬ
[Название газеты]
,[AreaOfNews]
,[RateOfNewsPublished]
,[TotalAmount]

Из [ecampus]. [dbo].[tblDailyNewsPublishedDetails] где NewspaperName= 'AAPALA SARVMAT' и DateOfPublication между '2016-09-28' и '2016-10-05'





Выберите [имя газеты]
,[AreaOfAdvertisement]
,[RatePerSqCm]
,[TotalAmount]
,[Скидка]
,[ActualAmountPaid]
Из [ecampus]. [dbo].[tblAdvertisementRequestDetails] где NewspaperName= 'AAPALA SARVMAT' и DateOfPublication между '2016-09-28' и '2016-10-05' и [AdvertisementPublishStatus]= 'Y'

Что я уже пробовал:

Пожалуйста ответьте Я хочу выполнить join по вышеуказанным запросам поэтому я сделаю сравнение в своем проекте о опубликованной рекламе и опубликованных новостях

1 Ответов

Рейтинг:
1

OriginalGriff

Начните с изменения базы данных: добавьте третью таблицу
Газеты

ID        INT, IDENTITY, PRIMARY KEY
PaperName NVARCHAR
А затем избавьтесь от своего строкового NewpaperName из других таблиц в пользу внешнего ключа к полю ID таблицы Newspapers.
Затем вы можете использовать соединение, чтобы получить имя:
SELECT n.PaperName, npd.AreaOfNews FROM tblDailyNewsPublishedDetails npd
JOIN Newspapers n ON n.ID = npd.PaperID
Это намного эффективнее, чем хранить название бумаги каждый раз.
Затем вы можете добавить к соединению:
SELECT n.PaperName, npd.AreaOfNews, ard.AreaOfAdvertisment FROM tblDailyNewsPublishedDetails npd
JOIN Newspapers n ON n.ID = npd.PaperID
JOIN tblAdvertisementRequestDetails ard ON n.ID = ard.PaperID AND ard.DateOfPublication = npd.DateOfPublication
WHERE ard.DateOfPublication BETWEEN '2016-09-28' AND '2016-10-05' and ard.AdvertisementPublishStatus='Y'
Что, вероятно, даст вам начало того, чего вы хотите.