日期:2014-05-19  浏览次数:20418 次

Cross join的一个问题
SELECT   TempTable.ProID,   TempTable.ProNumber   AS   编号,  
            TempTable.ChiDescription   AS   描述,   TempTable.LevelName   AS   等级,  
            dbo.DepotConfig.Num   AS   数量
FROM   (SELECT   dbo.Pro.ProID,   dbo.Pro.ProNumber,   dbo.Pro.ChiDescription,  
                            dbo.[level].levelid,   dbo.[Level].LevelName
                FROM   dbo.[Level]   CROSS   JOIN
                            dbo.Pro)   TempTable   LEFT   OUTER   JOIN
            dbo.DepotConfig   ON   TempTable.levelid   =   dbo.DepotConfig.LevelID   AND  
            TempTable.ProID   =   dbo.DepotConfig.ProID
这条语句,能不能不用临时表来完成,
我要显示的结果为
ProID 编号 描述                     等级 数量
10724 F8200 "8 " "厨房水龙头 " 二等品 200
10725 F8203                   二等品 70
10724 F8200 "8 " "厨房水龙头 " 三等品 300
10725 F8203                   三等品
10724 F8200 "8 " "厨房水龙头 " 一等品 100
10725 F8203                   一等品 50
当Depoconfig不存ProID和LEVELID相等的纪录时,也显示Pro和LEVEL表的Cross   join...

------解决方案--------------------
你的语句有什么问题?