如何做选择在这种情况下? [重复]

0

的问题

如何创建一个单一的MSSQL"选择"查询,在这种情况下:

  1. 我们已经有了2表:成果和期限
  2. 我们的目标是收桌果的具体数量有有关的信息具有空中expirationdate将列。 这些水果的数字,没有空就会有零,列。 4号并不存在到期表,因此它也将有0结果,因为它没有空。

sql-server
2021-11-23 09:44:47
3
0

你不能轻易获得有效期的格式。 但是,它并不真正的问题(?). 我假设你想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;

我希望这可以帮助

2021-11-23 10:13:04

谢谢你响应,但这不会的工作。 首先,你将接收多个相同的水果编号e。g1中有两个记录。 其次,如果水果的数量已NULL,比它不应该显示的其他的到期日期。
Grzegorz Kaczmarczyk

啊好吧...我没有抓住那个从你的问题。 我的午休时间是在正确的,但现在我将看一看以后的工作,如果没有其他人已经解决了问题:)
CodeAddict
0

你必须要使用它 Case 条件。 但是,必须改变声明一点:

select fruit_number, --distinct(fruit_number),
x =case expiration_date
when NULL then null
else 0
end
2021-11-23 10:07:49
0

我的朋友找到解决方案。

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
2021-11-23 10:23:25

欢迎来到堆溢出。 代码没有任何解释很少有帮助的。 堆溢出是关于学习,不提供段的要盲目地复制和粘贴。 请编辑问题,并解释它如何回答的具体问题被要求。 看看 怎么回答.
Sfili_81

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................