DECLARE @PR履歴No int
DECLARE @商品No int
DECLARE @顧客No int
DECLARE @登録スタッフNo int
DECLARE @広告No int
DECLARE @プロモーション予定No int
DECLARE @プロモーション実績No int
DECLARE @PR区分No int
DECLARE @総費用 int
DECLARE @対象商品総数 int
DECLARE @対象既存顧客総数 int
DECLARE @有効日数内の総売上 int
DECLARE @新規顧客獲得数 int
DECLARE @見込顧客獲得数 int
DECLARE @掘起し顧客数 int
DECLARE @更新スタッフNo int
DECLARE @年 int
DECLARE @年月 int
DECLARE @月 int
DECLARE @R int
DECLARE @F int
DECLARE @M int
DECLARE @G int
DECLARE @B int
DECLARE @コンタクト履歴No int
DECLARE @バウンドNo int
DECLARE @ツールNo int
DECLARE @コンタクトスタッフNo int
DECLARE @スタッフNo int
DECLARE @役職No int
DECLARE @権限No int
DECLARE @画面No int
DECLARE @区分 int
DECLARE @可不可 int
DECLARE @性別 int
DECLARE @メルマガ許諾 int
DECLARE @家族構成No int
DECLARE @家族区分 int
DECLARE @補足名No int
DECLARE @顧客補足No int
DECLARE @購入済み商品No1 int
DECLARE @購入済み商品No2 int
DECLARE @購入済み商品No3 int
DECLARE @RFMランク int
DECLARE @RFM種別 int
DECLARE @ランク int
DECLARE @販売数 int
DECLARE @商品単価 int
DECLARE @元商品No int
DECLARE @動向No int
DECLARE @PR名 varchar
DECLARE @広告名 varchar
DECLARE @内容 varchar
DECLARE @担当者名 varchar
DECLARE @TEL varchar
DECLARE @FAX varchar
DECLARE @メールアドレス varchar
DECLARE @URL varchar
DECLARE @備考 varchar
DECLARE @操作端末名 varchar
DECLARE @操作スタッフ氏名 varchar
DECLARE @操作画面 varchar
DECLARE @操作内容 varchar
DECLARE @件名 varchar
DECLARE @本文 varchar
DECLARE @スタッフID varchar
DECLARE @パスワード varchar
DECLARE @氏名 varchar
DECLARE @値 varchar
DECLARE @顧客ID varchar
DECLARE @氏名カナ varchar
DECLARE @郵便番号 varchar
DECLARE @住所 varchar
DECLARE @補足内容 varchar
DECLARE @商品ID varchar
DECLARE @商品名 varchar
DECLARE @公開予定日 datetime
DECLARE @公開実施日 datetime
DECLARE @予定期間fr datetime
DECLARE @予定期間to datetime
DECLARE @公開予定日fr datetime
DECLARE @公開予定日to datetime
DECLARE @公開実施日fr datetime
DECLARE @公開実施日to datetime
DECLARE @実施期間fr datetime
DECLARE @実施期間to datetime
DECLARE @休眠対象日 datetime
DECLARE @販売日時fr datetime
DECLARE @販売日時to datetime
DECLARE @操作日fr datetime
DECLARE @操作日to datetime
DECLARE @コンタクト日時 datetime
DECLARE @生年月日 datetime

SET @PR履歴No = 1
SET @商品No = 1
SET @顧客No = 1
SET @登録スタッフNo = 1
SET @広告No = 1
SET @プロモーション予定No = 1
SET @プロモーション実績No = 1
SET @PR区分No = 1
SET @総費用 = 1
SET @対象商品総数 = 1
SET @対象既存顧客総数 = 1
SET @有効日数内の総売上 = 1
SET @新規顧客獲得数 = 1
SET @見込顧客獲得数 = 1
SET @掘起し顧客数 = 1
SET @更新スタッフNo = 1
SET @年 = 1
SET @年月 = 1
SET @月 = 1
SET @R = 4
SET @F = 5
SET @M = 5
SET @G = 1
SET @B = 1
SET @コンタクト履歴No = 1
SET @バウンドNo = 1
SET @ツールNo = 1
SET @コンタクトスタッフNo = 1
SET @スタッフNo = 1
SET @役職No = 1
SET @権限No = 1
SET @画面No = 1
SET @区分 = 1
SET @可不可 = 1
SET @性別 = 1
SET @メルマガ許諾 = 1
SET @家族構成No = 1
SET @家族区分 = 1
SET @補足名No = 1
SET @顧客補足No = 1
SET @購入済み商品No1 = 1
SET @購入済み商品No2 = 1
SET @購入済み商品No3 = 1
SET @RFMランク = 1
SET @RFM種別 = 1
SET @ランク = 1
SET @販売数 = 1
SET @商品単価 = 1
SET @元商品No = 1
SET @動向No = 1
SET @PR名 = 'a'
SET @広告名 = 'a'
SET @内容 = 'a'
SET @担当者名 = 'a'
SET @TEL = 'a'
SET @FAX = 'a'
SET @メールアドレス = 'a'
SET @URL = 'a'
SET @備考 = 'a'
SET @操作端末名 = 'a'
SET @操作スタッフ氏名 = 'a'
SET @操作画面 = 'a'
SET @操作内容 = 'a'
SET @件名 = 'a'
SET @本文 = 'a'
SET @スタッフID = 'a'
SET @パスワード = 'a'
SET @氏名 = 'a'
SET @値 = 'a'
SET @顧客ID = 'a'
SET @氏名カナ = 'a'
SET @郵便番号 = 'a'
SET @住所 = 'a'
SET @商品ID = 'a'
SET @商品名 = 'a'
SET @公開予定日 = '2002/1/11'
SET @公開実施日 = '2002/1/11'
SET @実施期間fr = '2002/1/11'
SET @実施期間to = '2003/7/11'
SET @休眠対象日 = '2001/7/15'
SET @予定期間fr = '2001/7/15'
SET @予定期間to = '2001/7/15'
SET @公開予定日fr = '2002/1/11'
SET @公開予定日to = '2002/1/11'
SET @公開実施日fr = '2002/1/11'
SET @公開実施日to = '2002/1/11'
SET @販売日時fr = '2002/1/11'
SET @販売日時to = '2002/1/11'
SET @操作日fr = '2002/1/11'
SET @操作日to = '2002/1/11'
SET @コンタクト日時 = '2002/1/11'
SET @生年月日 = '2002/1/11'


/*
-- Fill
--SELECT
--	商品No,
--	類似度 
--FROM 
--	C03お勧め商品_顧客毎
--WHERE
--	組織No = @組織No
SELECT
	商品No,
	類似度
FROM
	C03お勧め商品_顧客毎
*/

---- FillByお勧め商品_RFM
/*
SELECT
	TOP (100) 計算先商品No,
	類似度
FROM (
	SELECT
		計算先商品No,
		SUM(類似度) AS 類似度
	FROM (
		SELECT DISTINCT
			C10商品間の類似度.計算先商品No, 
			C10商品間の類似度.類似度
		FROM
			C10商品間の類似度 INNER JOIN
			H01販売履歴 ON 
			C10商品間の類似度.計算元商品No = H01販売履歴.商品No INNER JOIN
			C02RFM ON 
			H01販売履歴.顧客No = C02RFM.顧客No
		WHERE
			(C02RFM.R = @R) AND
			(C02RFM.F = @F) AND 
			(C02RFM.M = @M)
		) AS tb
	GROUP BY
		計算先商品No
	) AS tb2
ORDER BY
	類似度 DESC

SELECT
	TOP (100) 計算先商品No,
	類似度
FROM (
	SELECT
		計算先商品No,
		SUM(類似度) AS 類似度
	FROM
		C12TMP商品間の類似度
	GROUP BY
		計算先商品No
	) AS tb2
ORDER BY
	類似度 DESC
*/
SELECT
	TOP (50) 計算先商品No,
	類似度
FROM (
	SELECT
		計算先商品No,
		SUM(類似度) AS 類似度
	FROM
		C12TMP商品間の類似度
	GROUP BY
		計算先商品No
	) AS tb2
ORDER BY
	類似度 DESC

---- InsertC12TMP商品間の類似度_商品別
/*
INSERT INTO C12TMP商品間の類似度
		SELECT DISTINCT
			C10商品間の類似度.計算先商品No, 
			C10商品間の類似度.類似度
		FROM
			C10商品間の類似度 INNER JOIN
			H01販売履歴 ON 
			C10商品間の類似度.計算元商品No = H01販売履歴.商品No INNER JOIN
			C02RFM ON 
			H01販売履歴.顧客No = C02RFM.顧客No
		WHERE
			(C02RFM.R = @R) AND
			(C02RFM.F = @F) AND
			(C02RFM.M = @M) AND
*/
INSERT INTO C12TMP商品間の類似度 VALUES (@計算先商品No, @類似度)

/*
INSERT INTO C12TMP商品間の類似度
		SELECT
			C10商品間の類似度.計算先商品No, 
			C10商品間の類似度.類似度
		FROM
			C10商品間の類似度 INNER JOIN
			H01販売履歴 ON 
			C10商品間の類似度.計算元商品No = H01販売履歴.商品No INNER JOIN
			C02RFM ON 
			H01販売履歴.顧客No = C02RFM.顧客No
		WHERE
			(C02RFM.R = @R) AND
			(C02RFM.F = @F) AND 
			(C02RFM.M = @M)
*/
/*
			(C02RFM.R = 4) AND
			(C02RFM.F = 5) AND 
			(C02RFM.M = 5)
*/

---- FillByお勧め商品_RFM_2

---- DeleteC12TMP商品間の類似度
DELETE FROM C12TMP商品間の類似度

/*
-- FillByお勧め商品_RFM_商品別 使ってない
SELECT
	TOP (100) 計算先商品No,
	類似度
FROM (
	SELECT
		計算先商品No,
		SUM(類似度) AS 類似度
	FROM (
		SELECT DISTINCT
			C10商品間の類似度.計算先商品No, 
			C10商品間の類似度.類似度
		FROM
			C10商品間の類似度 INNER JOIN
			H01販売履歴 ON 
			C10商品間の類似度.計算元商品No = H01販売履歴.商品No INNER JOIN
			C02RFM ON 
			H01販売履歴.顧客No = C02RFM.顧客No
		WHERE
			(C02RFM.R = @R) AND
			(C02RFM.F = @F) AND 
			(C02RFM.M = @M) AND 
			(C10商品間の類似度.計算先商品No = @計算先商品No)
		) AS tb
	GROUP BY
		計算先商品No
	) AS tb2
ORDER BY
	類似度 DESC
*/

-- FillByお勧め商品_RFM_対象商品取得
/*
SELECT DISTINCT
	C10商品間の類似度.計算先商品No,
	0 as 類似度
FROM
	C10商品間の類似度 INNER JOIN
	H01販売履歴 ON 
	C10商品間の類似度.計算元商品No = H01販売履歴.商品No INNER JOIN
	C02RFM ON 
	H01販売履歴.顧客No = C02RFM.顧客No
WHERE
	(C02RFM.R = @R) AND
	(C02RFM.F = @F) AND 
	(C02RFM.M = @M)
*/
SELECT DISTINCT
	C10商品間の類似度.計算先商品No, 
	C10商品間の類似度.類似度
FROM
	C10商品間の類似度 INNER JOIN
	H01販売履歴 ON 
	C10商品間の類似度.計算元商品No = H01販売履歴.商品No INNER JOIN
	C02RFM ON 
	H01販売履歴.顧客No = C02RFM.顧客No
WHERE
	(C02RFM.R = @R) AND
	(C02RFM.F = @F) AND
	(C02RFM.M = @M)


---- FillByお勧め商品_RFM_商品別
--SELECT
--	TOP (100) 計算先商品No,
--	類似度
--FROM (
INSERT INTO C12TMP商品間の類似度
	SELECT
		計算先商品No,
		SUM(類似度) AS 類似度
	FROM (
		SELECT DISTINCT
			C10商品間の類似度.計算先商品No, 
			C10商品間の類似度.類似度
		FROM
			C10商品間の類似度 INNER JOIN
			H01販売履歴 ON 
			C10商品間の類似度.計算元商品No = H01販売履歴.商品No INNER JOIN
			C02RFM ON 
			H01販売履歴.顧客No = C02RFM.顧客No
		WHERE
			(C02RFM.R = @R) AND
			(C02RFM.F = @F) AND 
			(C02RFM.M = @M) AND 
			(C10商品間の類似度.計算先商品No = @計算先商品No)
		) AS tb
	GROUP BY
		計算先商品No
--	) AS tb2
--ORDER BY
--	類似度 DESC




/*
---- FillByお勧め商品_顧客毎
---- (SUM(類似度) / 2) は「計算元商品No=3、計算先商品No=5」と
---- 「計算元商品No=5、計算先商品No=3」によって、類似度が重複
---- する事への対応。
--SELECT
--	TOP (100) 計算先商品No
--	,類似度
--FROM (
--		SELECT
--			 計算先商品No
--			,(SUM(類似度) / 2) as 類似度
--		FROM
--			C10商品間の類似度
--		WHERE
--			計算元商品No IN	(
--				SELECT
--					DISTINCT 商品No
--				FROM
--					H01販売履歴
--				WHERE
--					組織No = @組織No AND
--					顧客No = @顧客No
--			) AND
--			計算先商品No NOT IN (
--				SELECT
--					DISTINCT 商品No
--				FROM
--					H01販売履歴 AS H01販売履歴_1
--				WHERE
--					組織No = @組織No AND
--					顧客No = @顧客No
--			)
--		GROUP BY
--			計算先商品No
-- ) as t
SELECT TOP (100)
	計算先商品No,
	類似度
FROM (
	SELECT
		計算先商品No,
		SUM(類似度) / 2 AS 類似度
	FROM
		C10商品間の類似度
	WHERE
		計算元商品No IN (
			SELECT DISTINCT
				商品No
			FROM
				H01販売履歴
			WHERE
				顧客No = @顧客No
		) AND 
		計算先商品No NOT IN (
			SELECT DISTINCT
				商品No
			FROM
				H01販売履歴 AS H01販売履歴_1
			WHERE
				顧客No = @顧客No
		)
	GROUP BY
		計算先商品No
) AS t

*/