如果另一个临时表返回没有行,我需要编写一个查询以返回一个临时表中的值。如果另一个临时表返回没有行,则从临时表返回值
编辑:整个表具有以下结构
NAME TYPE DATE VALUE
Washington 1 NULL 1000 <--default value
Washington 2 NULL 750 <--default value
Washington 3 NULL 500 <--default value
Washington 1 04.11.2015 500
Washington 2 04.11.2015 250
Washington 3 04.11.2015 100
Washington 1 07.11.2015 600
Washington 2 07.11.2015 300
Washington 3 07.11.2015 200
温度表:Name, type, date, value
其中IS NULL
返回“默认”的日期值
温度表:Name, Type, date, value
其中每个独特Name
将具有3种类型( 1,2,3),每种类型都有不同的值,它们都有相同的日期。
当存在日期列中没有条目这意味着该值应为“缺省”,其下的行存储在相同的表,其中日期为空
我也有确定的8个不同的参数值,但
所以,我想在年底得到我只是在“1”兴趣和“2”因此“当”为:
Select *
from temp1
where date =GETDATE()
如果不存在我想要它回来:
select * from temp2.
我只对明天
后得到了今天,明天和天的结果感兴趣这就是我这么远,但它显然不工作。
我希望得到任何帮助,我可以得到
WITH defaultvalues
AS (SELECT DISTINCT
n.Name ,
Type ,
Value
FROM mytable
LEFT JOIN nametable AS n ON mytable.x = r.Id
AND Date IS NULL
),
changedvalue
AS (SELECT DISTINCT
n.Name ,
type ,
date ,
CASE WHEN d.Date = GETDATE()
AND Parameter = '1' THEN Value
WHEN Parameter = '2' THEN '0'
END AS CAP
FROM mytable
LEFT JOIN nametable AS n ON mytable.x = r.Id
WHERE Parameter IN ('1', '2')
)
SELECT CASE WHEN NOT EXISTS (SELECT *
FROM changedvalue
WHERE changedvalue.Date = GETDATE())
THEN (SELECT *
FROM defaultvalues
)
END
它不是从故事中清楚你到底想要什么合并和SQL本身不是说明性的。请你创造和提供一些示例数据和你所期望的输出。您可以使用SqlFiddle如果需要的话或T-SQL弯曲提供数据。 –