0
我有以下查询:的SQL Server交叉联接
select
tt.ItemOrder, tt.DisplayVal as Task, tt.Responsible as ResParty,
tt.DaysDue,
ActualDate = (select convert(varchar(10), cnfmdate, 101) from ProSer where PId = @PID), PDate = @PDate
from
tblTimeline tt
where
tt.ID = 1
我需要做的就是把它放在一个观点,这样我可以调用简单地使用PID的看法。 我想出了以下内容并使用交叉连接:
create view view1 as
select
ps.PID, tt.ID, tt.ItemOrder, tt.DisplayVal as Task,
tt.Responsible as ResParty, tt.DaysDue,
ps.cnfmdate As ActualDate, ProgStartDate as ProgramDate
from
tblTimeline tt
cross join
ProSer ps
where
tt.ID = 1 and ps.cancelled = 0
注意,现在,我可以做以下
select *
from view1
where PID = '34343'
,然后我可以从视图中检索。
现在,我不知道如何做到与以下情况类似,在这种情况下,我需要将它与交叉连接放在一起,类似于上面的操作。
请注意实际日期是如何涉及更多的一些。我需要使用交叉表,类似于上面的操作,但不像您所看到的那样,它涉及更多。
(注意这个部分,我将simly加入到我与UNION上面有厂景
select
tt.ItemOrder, tt.DisplayVal as Task, tt.Responsible as ResParty,
ActualDate = (
CASE
WHEN
NOT EXISTS(SELECT * FROM Spls WHERE RequestRcvd = 1 AND PID = @PID)
THEN
'N/A'
WHEN EXISTS (SELECT * FROM spls WHERE RequestRcvd = 1 AND RequestRcvdDate IS NOT NULL)
THEN
(SELECT CONVERT(VARCHAR(10),MAX(RequestRcvdDate),101) from spls WHERE RequestRcvd = 1 AND PID = @PID)
END
)
from
tblTimeline tt
where
tt.ID = 9
我需要知道我可以创建这个在交叉连接(这将是一个内部视图),这样我可以做类似下面的如何,我做了一个以上
select *
from view1
where PID = '34343'
,然后我可以从视图中检索。
proser是否包含您想要查询的PID? – 2012-08-10 13:36:45
是的,proser确实包含PID – 2012-08-10 13:40:11