PDA

View Full Version : No column name was specified for column



forodo
جمعه 29 خرداد 1394, 18:04 عصر
سلام
من یه سلکت زدم ولی همش ارور زیر رو میده:

Msg 8155, Level 16, State 2, Line 52
No column name was specified for column 3 of 'c'.
اینم کد اس کیوال:
with tblWith as
(
SELECT MAX(tblDaryafti.ID) AS DID, tblErsali.ID AS EID
FROM tblErsali INNER JOIN tblDaryafti
ON tblErsali.ID = tblDaryafti.LetterID
WHERE tblDaryafti.SendErjaa IS NOT NULL AND tblDaryafti.ReceiverUserName IS NOT NULL AND (tblDaryafti.SendErjaa = N'" + Program.Username + "' OR tblDaryafti.ReceiverUserName = N'" + Program.Username + @"' OR tblErsali.TabagheType = 0)
GROUP BY tblErsali.ID
),
tblWith1 as
(
SELECT MAX(tblDaryafti.ID) AS DID, tblLetterVarede.ID AS dd
FROM tblLetterVarede INNER JOIN tblDaryafti
ON tblLetterVarede.ID = tblDaryafti.VaredeLetterID
WHERE tblDaryafti.ReceiverUserName IS NOT NULL AND tblDaryafti.ReceiverUserName IS NOT NULL AND (tblDaryafti.SendErjaa = '" + Program.Username + "' OR tblDaryafti.ReceiverUserName = '" + Program.Username + @"' OR tblLetterVarede.TabagheType = 0)
GROUP BY tblLetterVarede.ID
),
tblWith2 as
(
SELECT letterID, max(ID) as[id]
FROM tblLetterSadere
GROUP BY letterID
)
SELECT * FROM
(
SELECT tblDaryafti.ID AS DID,tblErsali.ID AS EID,'' AS LetterID,tblDaryafti.SendErjaa,tblDaryafti.Receive rUserName
,Subject,tabaghe,jahat,ErjaDate,ErjaTime,
bazgasht,peyrov,OutEnterIn = N'داخلی', (CASE tblDaryafti.Archived WHEN 0 THEN N'جریان' ELSE N'اختتام' END) AS Ekhtetam, ProjectName
FROM tblErsali INNER JOIN tblDaryafti
ON tblErsali.ID = tblDaryafti.LetterID INNER JOIN tblWith
ON tblDaryafti.ID = tblWith.DID
) AS a
UNION ALL
SELECT * FROM
(
SELECT tblDaryafti.ID AS DID,tblLetterVarede.ID,tblLetterVarede.LetterID,Se nderSherkat,ReceiverUserName
,Subject,tabaghe,jahat,RegDate,Sendtime,
bazgasht,peyrov,OutEnterIn = N'وارده', (CASE tblDaryafti.ControlProzheFinish WHEN 0 THEN N'جریان' ELSE N'اختتام' END) AS Ekhtetam, ProjectName
FROM tblLetterVarede INNER JOIN tblDaryafti
ON tblLetterVarede.ID = tblDaryafti.VaredeLetterID INNER JOIN tblWith1
ON tblDaryafti.ID = tblWith1.DID
) AS b
UNION ALL
SELECT * FROM
(
SELECT tblLetterSadere.ID AS DID,tblLetterSadere.LetterID,'',senderUserName,Gir ande
,Subject,tabaghe,jahat,SendDate,Sendtime,
bazgasht,peyrov,OutEnterIn = N'صادره', (CASE tblLetterSadere.ControlProzheFinish WHEN 0 THEN N'جریان' ELSE N'اختتام' END) AS Ekhtetam, ProjectName
FROM tblLetterSadere INNER JOIN tblWith2
ON tblLetterSadere.id = tblWith2.id
WHERE tblLetterSadere.letterID <> '' AND (WhoCanSeeIt LIKE N'%-" + Program.Username + "-%' OR TabagheType = 0)
) AS [c]

behzadkhan
جمعه 29 خرداد 1394, 19:29 عصر
با سلام

دوست عزیز

اگر اشتباه نکرده باشم در خط 45:

SELECT tblLetterSadere.ID AS DID,tblLetterSadere.LetterID,'',senderUserName,Gir ande


برای سومین ستون که یک مقدار تهی '' هست نامی تعریف نشده است.

اما

در خط 25:


SELECT tblDaryafti.ID AS DID,tblErsali.ID AS EID,'' AS LetterID,tblDaryafti.SendErjaa,tblDaryafti.Receive rUserName


شما برای ستون سوم برای مقدار تهی

'' AS LetterID

تعریف کرده اید.


احتمالا اگر برای خط 45 هم اینکار را انجام دهید مشکل حل می شود.

با تشکر

forodo
یک شنبه 31 خرداد 1394, 20:44 عصر
مشکل همین بود و درست شد. ممنون.