首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

小弟在下有礼了解决方案

2012-03-24 
小弟在下有礼了SQL codeSELECT pkd.ID,Convert(varchar(10),pkl.ViewDate,111)as ViewTime,CONVERT(VARCHA

小弟在下有礼了

SQL code
SELECT pkd.ID,       Convert(varchar(10),pkl.ViewDate,111)  as ViewTime,       CONVERT(VARCHAR, pkd.InitialDate) as UploadTime,        pkd.ProductLine as ProductLine,        pkd.Model as model,       pkd.SerialNo as SerialNo,    begin        select account,        case when (account ! ='')        then            (select account from NTUser where NTUser.[ID] = pkl.viewBy) as UserAccount,             (select name from UserSite u,site s where u.siteid=s.id) as sitename,            'big' as UserType,        else            (select account from member where member.[ID] = pkl.viewBy) as UserAccount,             (select country from UserSite u,regioncountry c where u.siteid=c.siteID) as sitename,            'small' as UserType,        end        from NTUser,    end FROM pkbknowledgedetail pkd,PKBViewLog pkl WHERE Status = 'A' and pkl.KnowLedgeID = pkd.[ID] and viewBy='ASfde0ea4b-4fbf-41af-b4ae-78215f295cbf' 小弟不胜感激啊            



求大牛门帮忙看下 错误如下:


消息 156,级别 15,状态 1,第 7 行
Incorrect syntax near the keyword 'begin'.
消息 156,级别 15,状态 1,第 11 行
Incorrect syntax near the keyword 'as'.
消息 156,级别 15,状态 1,第 12 行
Incorrect syntax near the keyword 'as'.
消息 156,级别 15,状态 1,第 15 行
Incorrect syntax near the keyword 'as'.
消息 156,级别 15,状态 1,第 16 行
Incorrect syntax near the keyword 'as'.


大致表的意思说下吧 就是 传入 一个viewby,这个ViewBy在PKBViewLog里 各个关系就是根据ViewBy 可以查看KnowLedgeID 这个ID和pkbknowledgedetail的ID对应的

[解决办法]
SQL code
建议你提供详细的资料:例如表的结构,表之间的关系,测试数据,相关算法及需要的结果。这样有助于我们理解你的意思,更主要的是能尽快让你获得答案或解决问题的方法。
[解决办法]
SQL code
SELECT pkd.ID,       Convert(varchar(10),pkl.ViewDate,111)  as ViewTime,       CONVERT(VARCHAR, pkd.InitialDate) as UploadTime,        pkd.ProductLine as ProductLine,        pkd.Model as model,       pkd.SerialNo as SerialNo,???从哪儿查??后面的呢?    begin        select account,        case when (account ! ='')        then            (select account from NTUser where NTUser.[ID] = pkl.viewBy) as UserAccount,             (select name from UserSite u,site s where u.siteid=s.id) as sitename,            'big' as UserType--都好多余        else            (select account from member where member.[ID] = pkl.viewBy) as UserAccount,             (select country from UserSite u,regioncountry c where u.siteid=c.siteID) as sitename,            'small' as UserType,        end        from NTUser,    end FROM pkbknowledgedetail pkd,PKBViewLog pkl WHERE Status = 'A' and pkl.KnowLedgeID = pkd.[ID] and viewBy='ASfde0ea4b-4fbf-41af-b4ae-78215f295cbf' 这个错误太多了,给测试数据和结果吧,不带这么写的
[解决办法]
不带这么写的,你说出来有哪些东西,想干什么,也许会有更好的解决方法。
[解决办法]
楼主,小弟我投降了
[解决办法]

[解决办法]
支持楼主--精神
[解决办法]
探讨

引用:
楼主,小弟我投降了



亲 我也想把数据库发出来。。。。可是这个不是我自己的项目啊。。。是公司的。。。我现在纠结啊

[解决办法]
SQL SERVER 2000?2005?2008?

SQL code
;WITH m1 AS ( SELECT  account ,  (SELECT account FROM NTUser WHERE NTUser.[ID] = pkl.viewBy) AS UserAccount ,  (SELECT name FROM UserSite u ,site s WHERE u.siteid = s.id) AS sitename ,   'big' AS UserType FROM NTUser WHERE account ! = ''   UNION ALL  SELECT  account ,  (SELECT account FROM member WHERE member.[ID] = pkl.viewBy),  (SELECT country FROM UserSite u ,regioncountry c WHERE u.siteid = c.siteID) ,  'small' AS UserType FROM NTUser WHERE account = '' OR account IS NULL),m2 AS (SELECT pkd.ID ,              CONVERT(VARCHAR(10), pkl.ViewDate, 111) AS ViewTime ,              CONVERT(VARCHAR, pkd.InitialDate) AS UploadTime ,              pkd.ProductLine AS ProductLine ,              pkd.Model AS model ,              pkd.SerialNo AS SerialNo   FROM       pkbknowledgedetail pkd ,              PKBViewLog pkl   WHERE      Status = 'A'              AND pkl.KnowLedgeID = pkd.[ID]              AND viewBy = 'ASfde0ea4b-4fbf-41af-b4ae-78215f295cbf'              )--将这两个结果集按照你的要求连接查询即可。              SELECT * FROM m1 , m2 WHERE 1 = 1 


[解决办法]

探讨

引用:
SQL SERVER 2000?2005?2008?


SQL code


;WITH m1 AS
( SELECT account ,
(SELECT account FROM NTUser WHERE NTUser.[ID] = pkl.viewBy) AS UserAccount ,
(SELECT name FROM……

[解决办法]
探讨

引用:
引用:
引用:
引用:

引用:


报出2个错误

消息 170,级别 15,状态 1,第 1 行
Line 1: Incorrect syntax near ';'.
消息 17……

[解决办法]
参考一下这个:
http://topic.csdn.net/u/20100716/19/6f132f16-20e4-418c-8dee-b99d5f86d320.html?37139
[解决办法]
1、确定你使用的是SQL SERVER 2005?
2、图上看到的字段不全,图上的数据我一个一个敲也太麻烦了
建议参考下帖给出表脚本及测试数据:
http://topic.csdn.net/u/20120314/20/0e8bec70-612a-4a8a-80f6-4a71b1fb728f.html?seed=5733669&r=77919776#r_77919776
3、根据你#21的描述,你要的是
ViewTime uplaodtime(即InitialDate),productLine,meodel,SerialNo, sitename,UserType
一共7个字段?7个字段需要7个表?一个表取一个字段?
[解决办法]
SQL code
--就是个多表查询,如果用户表有2个,可以类似这种的联合查询select id,account,'外部人' AS UserType from member  union allselect id,account,'内部人' from NTUser
[解决办法]
SQL code
--先一部分一部分的来SELECT  pkd.ID ,        CONVERT(VARCHAR(10), pkl.ViewDate, 111) AS ViewTime ,        CONVERT(VARCHAR, pkd.InitialDate) AS UploadTime ,        pkd.ProductLine AS ProductLine ,        pkd.Model AS model ,        pkd.SerialNo AS SerialNoFROM    pkbknowledgedetail pkd ,        PKBViewLog pklWHERE   Status = 'A'        AND pkl.KnowLedgeID = pkd.[ID]        AND viewBy = 'ASfde0ea4b-4fbf-41af-b4ae-78215f295cbf'--这个运行没有问题,结果能得到你想要的6个字段?
[解决办法]
把连接查询的条件改一下

left join @NTUser b on a.id = b.id
left join @member c on a.id = c.id

你的a.id 是pkd.ID
b.id 是 NTUser.id
c.id 是 regioncountry.siteid

关系不对,故而结果不对...

你可以把插入表变量时的字段重新对应一下
或是把on后面的id改成对应的字段。

热点排行