私は文を作成したいが、これを完了するのに成功していない。あなたは一見をして、これを完了するために何が必要なのか教えてください。私の問題は、これらの2つの部分を私のクエリにどのように追加するかによるものです。カウント、ケース、Distinctを一緒にSQLサーバーで使用する方法
各DRV1NUMの注文の過去30日間を見たいと思います。そのドライバーが0日働いている場合は、 'NOT ACTIVE'と答えてください。運転手が15日以上働いた場合は、「フルタイム」と15日未満が「パートタイム」です。
ここでは、注文の最後の30日間を見て、DRIVERNUMの左(4)をDRIVERNUM全体と比較したいと考えています。いくつかの例では、私たちは左から5番目の手紙があるドライバーを持っています。4.注文の最後の30日を見たいと思っています。そして、左の(4)DRV1NUMがすべての文字を見ているときにDRV1NUM 「マスター」
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')
私はここActiveStatusは、ドライバが過去15日間に15日以上働いたので、アクティブであるか、それは意志少ない15を、その後場合
DRVLICNUM Employee DOB COUNTRY ACTIVESTATUS
---------------------------------------------------------
055243324 CONTRACTOR 1985-04-13 ATLANTA FULL TIME
をしたい予想される出力「パートタイム」になる日数
を比較し、あなたが入力してexpecterd出力 – Backtrack
あなたのスクリプトを追加することができますが、そこから外れDRIVER1とORDE_1テーブルを作成しますクエリの名前が、それは大きな問題ではありません。クエリを実行するとSSMSは2つのエラーをスローします: '無効な列名 'DRIVERID'。無効な列名 'PROBDATE'。スクリプトをチェックしてください。 – gofr1
代わりに、いくつかの簡単な例で再度説明してください。具体的には、黄色の計算部分。最後のパラは明確ではありません。 – KumarHarsh