2013-04-24 2 views
0

Я новичок в SQL и, похоже, не хочу, чтобы моя голова обходилась с использованием предложения WHERE только для части утверждения. Например, (написано в основном)Имея проблему с простым выбором, где оператор

SELECT Forename, Surname, Organisation 
FROM Client table 

SELECT Renewal day AND Renewal month AS Renewal date 
FROM Client table 
WHERE Renewal day <> 0 

Мне нужно все это, чтобы быть один оператор, но и с тем, что, где положение не влияющими на имя, фамилия и поля организации. Например, таблица будет заполнена клиентами, но столбец даты обновления отобразит только дату для клиентов, у которых она есть. Thanks

+0

Это для Mysql – Johnathan

+1

Можете ли вы предоставить некоторые примеры данных и то, что вы на самом деле хотите получить из запроса? – tster

+0

Он будет иметь все данные клиентов (имя, фамилия, организация), но включает только дату продления для тех, у кого есть – Johnathan

ответ

1
SELECT Forename, Surname, Organisation, IF(Renewal day <> 0, Renewal day AND Renewal month, '') as Renewal 
FROM Client table 

Должен сделать трюк. Это не будет работать сразу, как и утверждение в IF не будет нравиться, хотя вы можете использовать:

IF(Renewal day <> 0, CONCAT(Renewal day,Renewal month), '') as Renewal 

или

IF(Renewal day <> 0, Renewal day) as renewDay, IF(Renewal day <> 0, Renewal month, '') as renewMonth 

иметь 2 отдельных полей.

0

Проще всего хранить дату продления в качестве даты и позволяет аннулирует, то вы просто сделать:

SELECT Forename, Surname, Organization, RenewalDate 
FROM Client 
Смежные вопросы