我想将此查询放入新视图中。对于您的信息,dbo.TransferAS400Auftrag
也是一种观点。
SELECT dbo.TransferAS400Auftrag.Angebotsnummer AS AngNr1,
dbo.CSDokument.Angebotsnummer AS AngNr2,
dbo.TransferAS400Auftrag.OfferAngebotsnummer AS OAngNr1,
substring(dbo.TransferAS400Auftrag.OfferAngebotsnummer, 1, 10) AS OAngNr1_SUB10,
dbo.CSDokument.OfferAngebotsnummer AS OAngNr2,
substring(dbo.CSDokument.OfferAngebotsnummer, 1, 10) AS OAngNr2_SUB10
FROM dbo.TransferAS400Auftrag INNER JOIN
dbo.CSDokument ON dbo.TransferAS400Auftrag.Angebotsnummer =
dbo.CSDokument.Angebotsnummer
WHERE (LEN(dbo.TransferAS400Auftrag.OfferAngebotsnummer) > 10) AND
substring(dbo.TransferAS400Auftrag.OfferAngebotsnummer, 1, 10)
= substring(dbo.CSDokument.OfferAngebotsnummer, 1, 10)
但是,管理工作室的视图构建器始终将substring() = substring()
部分从where子句更改为INNER JOIN
部分。但是,通过此更改,我无法保存视图(error- object reference not set to an instance of an object)
。为什么不能在WHERE子句中使用substring() = substring()
?或者我可以用另一种方式达到目标吗?
答案 0 :(得分:0)
嗯,使用CREATE VIEW它有效。可能这对建造者来说确实是一个问题。谢谢你的提示。
答案 1 :(得分:0)
只需使用Transact SQL创建它,而不是使用管理工作室创建视图窗口,如下所示:
CREATE VIEW AS ViewName
AS
SELECT dbo.TransferAS400Auftrag.Angebotsnummer AS AngNr1,
dbo.CSDokument.Angebotsnummer AS AngNr2,
dbo.TransferAS400Auftrag.OfferAngebotsnummer AS OAngNr1,
substring(dbo.TransferAS400Auftrag.OfferAngebotsnummer, 1, 10) AS OAngNr1_SUB10,
dbo.CSDokument.OfferAngebotsnummer AS OAngNr2,
substring(dbo.CSDokument.OfferAngebotsnummer, 1, 10) AS OAngNr2_SUB10
FROM dbo.TransferAS400Auftrag INNER JOIN
dbo.CSDokument ON dbo.TransferAS400Auftrag.Angebotsnummer =
dbo.CSDokument.Angebotsnummer
WHERE (LEN(dbo.TransferAS400Auftrag.OfferAngebotsnummer) > 10) AND
substring(dbo.TransferAS400Auftrag.OfferAngebotsnummer, 1, 10)
= substring(dbo.CSDokument.OfferAngebotsnummer, 1, 10);