РЕДАКТИРОВАТЬ Вид выглядит следующим образом
CREATE VIEW [dbo].[vw] AS
SELECT
d.Column1
,d.Column2
,d.DocumentNo
,d.Title AS 'abc'
,d.column3 AS 'def'
,d.column4
,d.column5 AS 'adad'
,d.CODE
,d.ARCHIVED
,d.Revised
,d.Received
,d.APPROVED
,d.Act
,d.Cat
,d.Column8
,d.Column9
,d.[req]
, CASE WHEN p.ProjNo = '12345' and d.DocumentNo = LEFT(d.DocumentNo,8)) = 12345678 THEN p.ProjNo = 12345678 and p.ProjTitle = 'title1'
ELSE CASE WHEN p.ProjNo = '12345' and (d.DocumentNo = LEFT(d.DocumentNo,8)) = 23456789 THEN p.ProjNo = 23456789 and p.ProjTitle = 'Title2'
ELSE CASE WHEN p.projNo = '12345' and (d.DocumentNo = LEFT(d.DocumentNo,8)) = 34567890 THEN p.projNo = `34567890` and p.projTitile = 'Title3'
ELSE p.ProjNo END AS [BTProjNo]
,p.ID
FROM [DB].[dbo].[Document] d
INNER JOIN [DB].[dbo].[Project] p ON d.ProjNo = p.ProjNo
Я пытаюсь внести изменения в уже написанное из-за новых стандартов компании.В базе данных есть столбец projNo, столбец DocumentNo.Теперь компания разделила один проект на 3 небольших проекта, чей ProjNo - это первые 8 символов DocumentNo.
Попытка: я попытался использовать выражение CASE и функцию LEFT, чтобы разделить DocumentNo и сделать его новымPROJNO.Но я продолжаю получать ошибки.Я пытался с / без паратеза это то же самое
Код:
CASE WHEN p.ProjNo = '12345' and d.DocumentNo = LEFT(d.DocumentNo,8)) = 12345678 THEN p.ProjNo =
12345678 and p.ProjTitle = ' '
ELSE CASE WHEN p.ProjNo = '12345' and (d.DocumentNo = LEFT(d.DocumentNo,8)) = 23456789 THEN
p.ProjNo = 23456789 and p.ProjTitle = ' '
ELSE CASE WHEN p.projNo = '12345' and (d.DocumentNo = LEFT(d.DocumentNo,8)) = 34567890 THEN
p.projNo = `34567890` and p.projTitile = ' '
ELSE p.ProjNo END AS [BTProjNo]
Ошибки:
1) Выражение не-логического типа указано гдеОжидается условие - отображается в значении для d.DocumentNo
2) Неверный синтаксис около всех 3 ELSE.Ожидая И, ИЛИ, ТО
3) Неверный синтаксис почти у всех 3 '=' Ожидая И, ИЛИ, ТО
Может кто-нибудь сказать мне, что я делаю неправильно, и помочь мне разобраться в этом?направление