读书人

熟悉SQL的,该怎么解决

发布时间: 2012-03-28 15:40:03 作者: rapoo

熟悉SQL的
大虾们能不能帮忙看一下 哪错了 报错'接近字 'select' 之的法不正。'
with tempbl as(select ROW_NUMBER() over (order by HomepagePromote.AddedID asc) as Row,* from (
SELECT HomepagePromote.AddedID --上架
,DomaineData.DomaineOriName --酒原文
,VinData.VinOriName --酒款原文
,DomaineData.DomaineTraName --酒繁文
,VinData.VinTraName --酒款繁文
,VintageData.Vintage --年份
,ProdItems.SellPrice --售
,ProdItems.VinID --酒款
,ProdItems.VintageID --年份
,dbo.f_GetCateLvlAll (VinData.VinID,'-','1') AS CateLvl --
,SD1.DataTraDesc AS STYPE --型
,SD2.DataOriDesc AS VUL --容量
,HomepagePromote.PromoteDesc AS VinTraDesc --酒款介
,VintageCap.BtFilePath --酒瓶
FROM HomepagePromote
left JOIN ProdItems ON HomepagePromote.AddedID = ProdItems.AddedID
left JOIN VintageCap ON ProdItems.VintageID = VintageCap.VintageID
AND
ProdItems.VulID = VintageCap.VulID
AND
ProdItems.VinID = VintageCap.VinID
left JOIN VintageData ON ProdItems.VintageID = VintageData.VintageID
left JOIN VinData ON ProdItems.VinID = VinData.VinID
left JOIN DomaineData ON VinData.DomaineID = DomaineData.DomaineID
left JOIN SysBasicData AS SD1 ON VinData.VinType = SysBasicData.DataCode
left JOIN SysBasicData AS SD2 ON ProdItems.VulID = SysBasicData.DataCode
WHERE HomepagePromote.AddedID in(57,66)) as DataALl
select * from tempbl where Row between cast(1 as varchar) and cast(4 as varchar)

[解决办法]

SQL code
WITH    tempbl          AS ( SELECT   ROW_NUMBER() OVER ( ORDER BY HomepagePromote.AddedID ASC ) AS Row ,                        *               FROM     ( SELECT    HomepagePromote.AddedID ,                                    DomaineData.DomaineOriName ,                                    VinData.VinOriName ,                                    DomaineData.DomaineTraName ,                                    VinData.VinTraName ,                                    VintageData.Vintage ,                                    ProdItems.SellPrice ,                                    ProdItems.VinID ,                                    ProdItems.VintageID ,                                    dbo.f_GetCateLvlAll(VinData.VinID, '-',                                                        '1') AS CateLvl ,                                    SD1.DataTraDesc AS STYPE ,                                    SD2.DataOriDesc AS VUL ,                                    HomepagePromote.PromoteDesc AS VinTraDesc ,                                    VintageCap.BtFilePath                          FROM      HomepagePromote                                    LEFT JOIN ProdItems ON HomepagePromote.AddedID = ProdItems.AddedID                                    LEFT JOIN VintageCap ON ProdItems.VintageID = VintageCap.VintageID                                                            AND ProdItems.VulID = VintageCap.VulID                                                            AND ProdItems.VinID = VintageCap.VinID                                    LEFT JOIN VintageData ON ProdItems.VintageID = VintageData.VintageID                                    LEFT JOIN VinData ON ProdItems.VinID = VinData.VinID                                    LEFT JOIN DomaineData ON VinData.DomaineID = DomaineData.DomaineID                                    LEFT JOIN SysBasicData AS SD1 ON VinData.VinType = SysBasicData.DataCode                                    LEFT JOIN SysBasicData AS SD2 ON ProdItems.VulID = SysBasicData.DataCode                          WHERE     HomepagePromote.AddedID IN ( 57, 66 )                        ) AS DataALl             ) --这个位置少了半个括号    SELECT  *    FROM    tempbl    WHERE   Row BETWEEN CAST(1 AS VARCHAR) AND CAST(4 AS VARCHAR) 

读书人网 >SQL Server

热点推荐