Jump to content

UNION/UNION ALL SQL


Препоръчан пост

Здравейте. От скоро се самообучавам на SQL и имам един въпрос: Каква е разликата между UNION и UNION ALL при писането на заявки.

 

Имам и въпрос по една написана вече заявка:

 

SELECT PROJNO, PRENDATE AS ESTIMATED,

PRSTDATE + ((DAYS(PRENDATE) - DAYS(PRSTDATE))*1.1) DAYS

AS EXPECTED

FROM PROJECT

WHERE PROJNO LIKE 'MA%'

ORDER BY PROJNO

 

Ще дам няколко пояснения: PROJNO е номер на проект, PRENDATE/PRSTDATE е крайна/начална дата за завършване на проект. PRENDATE/PRSTDATE са във формат: 'гггг-мм-дд'(гггг-година,мм-месец,дд-ден).

 

Въпроса ми е: как след като функцията DAYS преобразува датата в брой дни резултата на EXPECTED пак е дата във формата 'гггг-мм-дд'

 

Предварително благодаря :)

Link to comment
Сподели другаде

  • 5 months later...

Ще предположа, че говориш за MySQL, пък ако не говориш за него да се надяваме, че и при другите е така:

 

По подразбиране като се прави UNION, резултатът е с уникални редове. Тоест повтарящите се премахват. Все едно си използвал SELECT DISTINCT. Като напишеш UNION ALL казваш да се включат в резултата и повтарящите се редове от UNION заявката.

 

А относно второто, което се надявам да няма връзка с въпроса за UNION:

 

Защо накрая на това:

PRSTDATE + ((DAYS(PRENDATE) - DAYS(PRSTDATE))*1.1) DAYS

има DAYS искаш да cast-неш или? Ако не получаваш резултата в какъвто формат очакваш може би се прави някакво cast-ване автоматично.

Също може да пробваш да сложиш нещото, което селектваш в скоби:

(PRSTDATE + ((DAYS(PRENDATE) - DAYS(PRSTDATE))*1.1) DAYS)

AS EXPECTED

Link to comment
Сподели другаде

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...