如何创建一个单一的MSSQL"选择"查询,在这种情况下:
- 我们已经有了2表:成果和期限
- 我们的目标是收桌果的具体数量有有关的信息具有空中expirationdate将列。 这些水果的数字,没有空就会有零,列。 4号并不存在到期表,因此它也将有0结果,因为它没有空。
如何创建一个单一的MSSQL"选择"查询,在这种情况下:
你不能轻易获得有效期的格式。 但是,它并不真正的问题(?). 我假设你想1或0在你的新桌子上,因为您想使用,如果声明的检查,如果水果的不良或没有。 你可以很容易地解决这个:
if(expirationDate == null){/*something*/}
或者,你甚至可能是能够做到的
if(expirationDate) //this is all fruit that is not bad
else{/*your code to deal with expirated fruit here*/}
注意:我不知道什么编程语言的使用。 但在他们中的大多数:null和0都是假的。
if(null) // false
if(0) //false
if(undefined) //false, in javascript
//everything that is not a false value, is true.
if("oiaehgtaoiwgneawg") //true
if(-1) //true
来回答你的SQL query问题:
你已经拥有一切你需要的 过期 表
SELECT fruit_number, expiration_date
FROM expiration;
我希望这可以帮助
你必须要使用它 Case
条件。 但是,必须改变声明一点:
select fruit_number, --distinct(fruit_number),
x =case expiration_date
when NULL then null
else 0
end
我的朋友找到解决方案。
SELECT
fruit_number,
MAX(expirationDate) as expirationDate
FROM
(SELECT
f.fruit_number,
CASE
WHEN e.expiration_date is NULL AND e.fruit_number IS NOT NULL THEN 1
ELSE 0
END AS expirationDate
FROM
expiration as e
FULL OUTER JOIN fruits as f ON f.fruit_number = e.fruit_number
WHERE
f.fruit_number IS NOT NULL
) t
GROUP BY
fruit_number
ORDER BY
fruit_number