这个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