Я работаю с SQL на некоторое время, так что довольно новичок, но очень быстро поймал. У меня есть очень интенсивный запрос, который мне нужно создать для отчета - у меня есть это в excel и использовании IF-операторов и работает отлично.Как перенести критерии даты из нескольких столбцов из одной таблицы?
Вот что мне нужно: У меня есть одна таблица с несколькими столбцами, содержащие даты.
У одного «имени веяния флага» может быть более одной даты. Таково возможности/пример:
RavingFan ID 1 = FU Date + Testimonial Date + Bonus Date
RavingFan ID 2 = Referral Date + Signed Date
RavingFan ID 3 = Testimonial Date
мне нужно вытащить данные из каждого столбца, содержащего дату фильтра (прокатных 6 месяцев) я прочитал множественный выбор операторов выбора. Это то, что у меня есть, но это говорит мне, что мне нужны СУЩЕСТВА - надеюсь, кто-то может помочь !!
SELECT
(SELECT
rf.Raving_Fan_ID,
rf.Raving_Fan_Name,
cr.Contact_Role_Name,
emp.Emp_Name,
rf.FU_Detail,
rf.FU_Date,
rf.FU_Point,
rf.Bonus_Date,
rf.Bonus_Point
FROM Raving_Fans AS rf
LEFT JOIN Employees AS emp ON rf.Emp_ID = emp.Emp_ID
LEFT JOIN Contact_Role AS cr ON rf.Contact_Role_ID = cr.Contact_Role_ID
WHERE rf.FU_Date BETWEEN DATEADD(day,-181,getdate()) AND DATEADD(day,0,getdate())
)
(SELECT
rf.Raving_Fan_ID,
rf.Raving_Fan_Name,
cr.Contact_Role_Name,
emp.Emp_Name,
rf.Test_Detail,
rf.Test_Date,
rf.Test_Point,
rf.Bonus_Date,
rf.Bonus_Point
FROM Raving_Fans AS rf
LEFT JOIN Employees AS emp ON rf.Emp_ID = emp.Emp_ID
LEFT JOIN Contact_Role AS cr ON rf.Contact_Role_ID = cr.Contact_Role_ID
WHERE rf.Test_Date BETWEEN DATEADD(day,-181,getdate()) AND DATEADD(day,0,getdate())
)
(SELECT
rf.Raving_Fan_ID,
rf.Raving_Fan_Name,
cr.Contact_Role_Name,
emp.Emp_Name,
rf.Ref_Detail,
rf.Ref_Date,
rf.Ref_Point,
rf.Signed_Date,
rf.Signed_Point,
rf.Bonus_Date,
rf.Bonus_Point
FROM Raving_Fans AS rf
LEFT JOIN Employees AS emp ON rf.Emp_ID = emp.Emp_ID
LEFT JOIN Contact_Role AS cr ON rf.Contact_Role_ID = cr.Contact_Role_ID
WHERE rf.Ref_Date BETWEEN DATEADD(day,-181,getdate()) AND DATEADD(day,0,getdate())
)
Мне нелегко обернуть голову вокруг этого. Есть ли более простой способ сделать это? Любая помощь приветствуется.
Можете ли вы поделиться некоторыми данными примера и результатом, которого вы пытаетесь достичь? – Mureinik
Я посмотрю, что я могу придумать. Просто надеялся, если кто-нибудь скажет мне, как добиться получения данных из нескольких столбцов без дублирования идентификатора ПК. Из дополнительных исследований, которые я сделал - я предполагаю, что это может повлечь за собой запрос CTE –
Я смог понять это. –