Я хочу создать заявление, но я не успеваю это завершить. не могли бы вы взглянуть и сообщить мне, что мне нужно сделать, чтобы закончить это. Моя проблема заключается в том, как добавить эти две части в мой запрос.как использовать count, case и Distinct вместе в sql-сервере
Я хочу посмотреть последние 30 дней заказов для каждого DRV1NUM. Если этот драйвер работал 0 дней, тогда скажите «НЕ АКТИВНО». Если водитель работал более 15 дней, тогда «ПОЛНОЕ ВРЕМЯ» и менее 15 дней - «ЧАСОВОЕ ВРЕМЯ».
В этом случае я хочу посмотреть последние 30 дней заказов и сравнить левое (4) DRIVERNUM со всем DRIVERNUM. В некоторых случаях у нас есть драйверы, где есть 5-я буква после левого 4. Я хочу посмотреть последние 30 дней заказов, и если левый (4) DRV1NUM имеет более одного DRV1NUM, КОГДА глядя на все символы, тогда SAY «MASTER»
SELECT DISTINCT DRVLICNUM,DOB,COUNTRY,CREDITLIMIT,DRIVERNUM=LEFT(DRIVERNUM,4),
SSN,D.VEHICLE,PHN1,DRVLICST,HOST,VEHICLE_MC,
VEHICLE_DOT,BACK_APPROVED=CASE WHEN PROBDATE IS NOT NULL THEN 'YES' ELSE 'NO' END
-- CASE WHEN COUNT(DISTINCT O.DROPDATE)=0 IN LAST 30 DAYS THEN 'NOT ACTIVE' WHEN COUNT(DISTINCT O.DROPDATE)>15 IN LAST 30 DAYS THEN 'FULL TIME' WHEN COUNT(DISTINCT O.DROPDATE)>=1 AND <=15 THEN 'PART TIME' IN LAST 30 DAYS ELSE NULL AS DAYSWORKED,
-- --CASE WHEN COUNT(DISTINCT O.DRV1NUM OF LEFT(DRIVERNUM,4)>0 IN LAST 30 DAYS OF ORDERS>1 THEN 'MASTER IC' ELSE NULL AS MASTER
/* ABOVE TWO STATEMENT I WANT TO ADD */
FROM DRIVER D
FULL OUTER JOIN orde_ O ON O.DRV1ID=D.DRIVERID
AND ISNUMERIC(DRIVERNUM)=1 and DRIVERNUM NOT IN ('1010')
Ожидаемый результат, что я хочу
DRVLICNUM Employee DOB COUNTRY ACTIVESTATUS
---------------------------------------------------------
055243324 CONTRACTOR 1985-04-13 ATLANTA FULL TIME
Здесь ActiveStatus активен, потому что водитель работал более 15 дней за последние 15 дней, или если он будет меньше 15 дней будет «неполный рабочий день»
вы можете добавить входные и expecterd выходных – Backtrack
Ваших скриптов создает Driver1 и ORDE_1 таблицы, отклоняется от туда имена в запросе, но это не большая проблема. При запуске вашего запроса SSMS выбрасывает 2 ошибки: 'Неверное имя столбца 'DRIVERID'. Неверное имя столбца' PROBDATE '.', Пожалуйста, проверьте свой скрипт. – gofr1
, объясните еще раз несколькими простыми примерами. Специально для вычисления part.last para в желтом не ясно. – KumarHarsh