これはやや単純なはずですが、何らかの理由でこの問題を理解できません。値に応じて1つの表の列から別の表の列にデータを入れます
私の質問では、単純にいくつかのテーブルを結合し、それぞれからのデータを1つの小さな/簡潔なテーブルに入れています。しかし、それはLEGTYPE1
と最初の行で問題になり、the FUNCTION a.LEGTYPE1 does not exist
と表示されます。
LEGTYPE1
は、1または2のいずれかが格納されている 'a'テーブルの列です.1の場合はANSWERED = 1でインバウンド列の場合は '1'を入力する必要があります。値が「2」の場合はアウトバウンド列。
LEGTYPEの値が1と2の合計を取得する点を除いて、同じことをする別のテーブルで同様のクエリを実行していますが、正常に動作しますが、合計を使用していると思います。値そのものを入れる。ここで
クエリです:
Insert into test.AMBrawDataDump(
Extension,
Start_Time,
End_Time,
Duration,
Inbound_Answered,
Missed,
Outbound,
Hold_Time)
SELECT
c.extension -- USER EXTENSION
, b.STARTTIME -- Start of call
, b.ENDTIME -- End of call
, b.DURATION -- Length of call
, LEGTYPE1(if(LEGTYPE1 = 2,1,0) and ANSWERED = 1) -- Inbound answered calls
, b.ANSWERED(if(Answered = 1,0,1)) -- Missed Calls
, a.LEGTYPE1(IF(LEGTYPE1 = 1, 1, 0)) -- Outbound calls
, a.HOLDTIMESECS -- Hold time in seconds
FROM cdrdb.session a
INNER JOIN cdrdb.callsummary b
ON a.NOTABLECALLID = b.NOTABLECALLID
INNER join cdrdb.mxuser c
ON a.RESPONSIBLEUSEREXTENSIONID = c.EXTENSIONID
WHERE b.ts BETWEEN curdate() - interval 90 day and curdate()
AND c.extension IN (7276,7314,7295,7306,7357,7200,7218,7247,7331,7255,7330,7000,7215,7240,7358,7312)
ORDER BY c.extension, DATE(b.ts);
データ例:
インバウンドを埋めるこれは私だけでLEGTYPE値を置く場合、私が得るものですが、私はそれをしたいです2の場合は列、1の場合はアウトバウンド列。
LEGTYPE1はsmallint列です。
を、あなたはサンプルデータを提供し、両方のテーブルの結果を期待していただけますか? –
データの画像とその説明が更新されていれば更新します –
あなたが探していたものはそれ以上でしたか? –