goshonski Публикувано Май 19, 2009 Report Share Публикувано Май 19, 2009 Здравейте. От скоро се самообучавам на SQL и имам един въпрос: Каква е разликата между UNION и UNION ALL при писането на заявки. Имам и въпрос по една написана вече заявка: SELECT PROJNO, PRENDATE AS ESTIMATED,PRSTDATE + ((DAYS(PRENDATE) - DAYS(PRSTDATE))*1.1) DAYSAS EXPECTEDFROM PROJECTWHERE PROJNO LIKE 'MA%'ORDER BY PROJNO Ще дам няколко пояснения: PROJNO е номер на проект, PRENDATE/PRSTDATE е крайна/начална дата за завършване на проект. PRENDATE/PRSTDATE са във формат: 'гггг-мм-дд'(гггг-година,мм-месец,дд-ден). Въпроса ми е: как след като функцията DAYS преобразува датата в брой дни резултата на EXPECTED пак е дата във формата 'гггг-мм-дд' Предварително благодаря Цитирай Link to comment Сподели другаде More sharing options...
Livingdead Публикувано Ноември 4, 2009 Report Share Публикувано Ноември 4, 2009 Ще предположа, че говориш за 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 Сподели другаде More sharing options...
Препоръчан пост
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.