日期:2014-05-17  浏览次数:20780 次

这个SQL文要怎么写了.求高手

这个SQL文要怎么写了.求高手
------最佳解决方案--------------------
建表如下:类似你的那张表:


查询语句如下:

SELECT tb1.执间上下限, tb1.执间规定寸法, tb2.水准上下限, tb2.水准规定寸法, 
      CASE WHEN tb1.test_name IS NULL 
      THEN tb2.test_name ELSE tb1.test_name END AS 测点
FROM (SELECT CONVERT(nvarchar(10), up_num) + '~' + CONVERT(nvarchar(10), down_num) 
              AS 执间上下限, space_num AS 执间规定寸法, test_name
        FROM temptb
        WHERE itemtext = '执间') tb1 FULL OUTER JOIN
          (SELECT '正负' + CONVERT(nvarchar(10), up_num) + '~' + CONVERT(nvarchar(10), 
               down_num) AS 水准上下限, space_num AS 水准规定寸法, test_name
         FROM temptb
         WHERE itemtext = '水准') tb2 ON tb1.test_name = tb2.test_name


查询结果如下图:


记得给分。
------其他解决方案--------------------
上下的关系在哪里?没看大懂
------其他解决方案--------------------
看不懂日语
貌似是行转列?

------其他解决方案--------------------
鬼子语.....看不懂
------其他解决方案--------------------
首先是测点名按照ABC的升序排类好合并测点名相同的行..然后在是那个检查项目ID 如果为 轨间的话上限下限按照一定的规格显示到轨间列上..如果检查项目ID是水准的话 上限下限按照一定的规格显示到水准列上
------其他解决方案--------------------
来个大哥啊!!!!!!!
------其他解决方案--------------------
继续,看了半天,只能发个这样的,因为关系没看得太懂,有几个一样的字段,看明白这个,我估计你知道怎么写了,。
------其他解决方案--------------------
再改动了一下


SELECT tb1.执间上下限, tb1.执间规定寸法, tb2.水准上下限, tb2.水准规定寸法, 
      CASE WHEN tb1.test_name IS NULL 
      THEN tb2.test_name ELSE tb1.test_name END AS 测点
FROM (SELECT CONVERT(nvarchar(10), up_num) + '~' + CONVERT(nvarchar(10), down_num) 
              AS 执间上下限, space_num AS 执间规定寸法, test_name
        FROM temptb
        WHERE itemtext = '执间') tb1 FULL OUTER JOIN
          (SELECT case when up_num=down_num then  '正负' + CONVERT(nvarchar(10), up_num) else
 '正负' + CONVERT(nvarchar(10), up_num) + '~' + CONVERT(nvarchar(10), 
               down_num) end  AS 水准上下限, space_num AS 水准规定寸法, test_name
         FROM temptb
         WHERE itemtext = '水准') tb2 ON tb1.test_name = tb2.test_name