我有3个表,我必须从中一起提取记录,并且必须在RadGrid中显示。
从表1中可以看出
要求
表,我必须获取以下列:
R、 请求ID
R、 条形码编号
R、 公司
R、 状态
从表2可以看出
Xml(Xml)
表,我必须获取以下列:
x、 扫描者
x、 扫描日期
x、 验证人
x、 验证日期
如表3所示
工作流
表,我必须获取以下列:
W、 行动
W、 用户名
W、 创建日期
现在,这个
W.Action
列中包含以下数据
工作流
表格:
这
W、 行动
列可以有重复的数据,如我上面所示。
对于每一个“
行动
列,有
用户名
“列和”
创建日期
“中的列
工作流
桌子
现在,我必须从上面3张表中提取记录
W.Action = 'Submit'
和
W.Action = 'Update'
此外,在Select查询中,我必须选择
W、 操作=“提交”
作为不同的列,并且
W、 操作=“更新”
作为不同的列,格式如下:
为此,我创建了以下查询:
Select * FROM
(
SELECT distinct
R.RequestID,
R.BarcodeNo,
R.Company,
R.Status,
x.ScannedBy,
x.ScannedDate,
x.VerifiedBy,
x.VerifiedDate,
W.Action, W.UserName as SubmitName, W.CreatedDate as SubmitDate
From [tbl_Request] (NOLOCK) R
Left Join [tbl_Xml](NOLOCK) X On X.XmlID = R.XmlID
Left Join [tbl_Workflow] (NOLOCK) W On W.RequestID = R.RequestID
Where W.Action = 'Submit'
) as A
Left Join
(
SELECT RequestID, W.Action, W.UserName as UpdateName , W.CreatedDate AS UpdateDate
From [tbl_Request] (NOLOCK) R
Left Join [tbl_Xml](NOLOCK) X On X.XmlID = R.XmlID
Left Join [tbl_Workflow] (NOLOCK) W On W.RequestID = R.RequestID
Where Action = 'Update'
) as B
ON A.RequestID=B.RequestID
通过以上查询,我可以成功获得
Action = 'Submit'
像
单独一列,以及
Action = 'Update'
作为单独的列'
但我没有得到正确的记录。
如果我单独运行查询的第一部分(即,对于Action=“Submit”)
它给了我142747张唱片
如果我单独运行查询的第二部分(即,操作=“更新”)
它给了我73021条记录
但如果我一次运行整个查询,它只给我215774条记录,这是不正确的。
它应该给我(142747+73021)个记录。
请告诉我我的查询有什么问题?
如何使用Action=Submit&操作=作为单独的列更新。
请回复