Как сделать ВЫБОР в этом случае? [дубликат]

0

Вопрос

Как создать один запрос MSSQL SELECT в этом случае:

  1. У нас есть 2 стола: фрукты и срок годности
  2. Цель состоит в том, чтобы получить таблицу, в которой конкретное число фруктов содержит информацию о наличии НУЛЯ в столбце Дата истечения срока действия. Те фруктовые числа, у которых нет нуля, будут иметь нули в этом столбце. Число 4 не существует в таблице истечения срока действия, поэтому в результатах также будет 0, потому что в нем нет NULL.

Таблицы

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

Вы не можете легко получить дату истечения срока действия в нужном вам формате. Однако на самом деле это не имеет значения(?). Я предполагаю, что вам нужно 1 или 0 в вашей новой таблице, потому что вы хотите использовать оператор if, чтобы проверить, плохие фрукты или нет. Вы можете легко решить эту проблему:

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-запроса:

У вас уже есть все необходимое в таблице истечения срока действия

SELECT fruit_number, expiration_date
FROM expiration;

Я надеюсь, что это поможет

2021-11-23 10:13:04

Спасибо за ваш ответ, но это не сработает. Прежде всего, вы получите несколько одинаковых фруктовых номеров, например, 1 имеет две записи. И во-вторых, если номер плода имеет значение 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

Добро пожаловать в Stack Overflow. Код без каких-либо объяснений редко бывает полезен. Переполнение стека-это обучение, а не предоставление фрагментов для слепого копирования и вставки. Пожалуйста, отредактируйте свой вопрос и объясните, как он отвечает на конкретный задаваемый вопрос. Посмотрим, как ответить.
Sfili_81

На других языках

Эта страница на других языках

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

Популярное в этой категории

Популярные вопросы в этой категории