前提・実現したいこと
会員マスタテーブルとトランザクションテーブルを結合し、年月別・会員のうち、どのくらいの数の方が購買を行っているか知りたいです。SQL歴2週間のため、問題になっている個所以外にも課題があるかもしれませんが、ご教示いただけますと幸いです。
問題
- OUTER JOINでテーブル結合をする前に、会員マスタテーブルのみでの集計を行いましたが、以下のエラーは発生しませんでした。下記コードのエラー内容を教えていただきたいです。
conversion failed when converting date and/or time from character string
- 会員マスターテーブルの中から年月別の(A)会員数、(B)会員のうち(情報登録数)の集計、(C)その会員のうち何人が購買をしているかを集計しており、トランザクションテーブルから(D)特定店舗(TBL_TRX.[DTP_COMPANY] = '003')での購買異数の集計を行いたいのですが、以下のコードにエラーがあると思っており、(A) = (D)となってしまいます。
SUM(CASE WHEN TBL_TRX.[DTP_MEMBER_ID] IS NOT NULL THEN 1 ELSE 0 END) AS '003_TRANSACT',
発生している問題・エラーメッセージ
conversion failed when converting date and/or time from character string
該当のソースコード
SELECT year(CONVERT(date, TBL_MEMBER.[PMP_CARD_ISSUE_DATE])) AS 'YEAR', month(CONVERT(date, TBL_MEMBER.[PMP_CARD_ISSUE_DATE])) AS 'MONTH', COUNT(TBL_MEMBER.[PMP_MEMBER_ID]) AS 'MEMBER_COUNT', SUM(CASE WHEN TBL_MEMBER.[PMP_LAST_TRX_DATE] IS NOT NULL THEN 1 ELSE 0 END) AS 'TRANSACT', SUM(CASE WHEN TBL_TRX.[DTP_MEMBER_ID] IS NOT NULL THEN 1 ELSE 0 END) AS '003_TRANSACT', SUM(CASE WHEN TBL_MEMBER.[PMP_MOBILE_PHONE] IS NOT NULL THEN 1 ELSE 0 END) AS 'ACTIVATED', CASE WHEN TBL_MEMBER.[PMP_CARD_TYPE] IS NULL THEN 0 WHEN TBL_MEMBER.[PMP_CARD_TYPE] = 1 THEN 1 WHEN TBL_MEMBER.[PMP_CARD_TYPE] = 0 THEN 0 ELSE 0 END AS 'CARD_TYPE', TBL_MEMBER.[PMP_ISSUER_CODE], TBL_MEMBER.[PMP_ISSUER_NAME] FROM [DWH_PONTA].[dbo].[PLMS_MEMBER_PROFILE] AS TBL_MEMBER LEFT OUTER JOIN [DWH_PONTA].[dbo].[DAILY_TRX_PLMS] AS TBL_TRX ON TBL_MEMBER.[PMP_ISSUER_CODE] = '003' AND TBL_MEMBER.[PMP_CARD_ISSUE_DATE] <> '0000-00-00' AND TBL_MEMBER.[PMP_MEMBER_ID] = TBL_TRX.[DTP_MEMBER_ID] AND TBL_TRX.[DTP_COMPANY] = '003' GROUP BY year(CONVERT(date, TBL_MEMBER.[PMP_CARD_ISSUE_DATE])), month(CONVERT(date, TBL_MEMBER.[PMP_CARD_ISSUE_DATE])), CASE WHEN TBL_MEMBER.[PMP_CARD_TYPE] IS NULL THEN 0 WHEN TBL_MEMBER.[PMP_CARD_TYPE] = 1 THEN 1 WHEN TBL_MEMBER.[PMP_CARD_TYPE] = 0 THEN 0 ELSE 0 END, TBL_MEMBER.[PMP_ISSUER_CODE], TBL_MEMBER.[PMP_ISSUER_NAME] ORDER BY YEAR, MONTH
試したこと
補足情報(FW/ツールのバージョンなど)
Microsoft SQL
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/03 05:05