You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sql-tools/更新wechatuser.sql

119 lines
2.9 KiB

1 year ago
use qingdao_fayuanxiuse
SELECT * FROM TWeChatUser WHERE FOpenId = 'o9qXw0Pwm2q0Uly_g5fpu1DJ_EYY'
SELECT * FROM TWeChatUser WHERE FAppId = 'o9qXw0Pwm2q0Uly_g5fpu1DJ_EYY'
SELECT * FROM TWeChatUser WHERE FOpenId = 'o9qXw0ACYrERyefB2ejWwJA2xwUo'
SELECT * FROM TWeChatUser WHERE FAppId = 'o9qXw0ACYrERyefB2ejWwJA2xwUo'
SELECT * FROM TWeChatUser WHERE FOpenId = 'o9qXw0CPFNsztTEtBn_a8joLcWNc'
SELECT * FROM TWeChatUser WHERE FOpenId IN( 'o9qXw0CPFNsztTEtBn_a8joLcWNc','o9qXw0ACYrERyefB2ejWwJA2xwUo','o9qXw0Pwm2q0Uly_g5fpu1DJ_EYY')
o9qXw0Pwm2q0Uly_g5fpu1DJ_EYY
ALTER TABLE TWeChatUser DROP CONSTRAINT PK_WECHAT_USER
GO
ALTER TABLE TWeChatUser WITH NOCHECK ADD
CONSTRAINT PK_WECHAT_USER PRIMARY KEY NONCLUSTERED
(
FUserType, FAppId, FOpenId, FMobile
)
GO
drop table #User1
SELECT 'Employee' AS FUserType,FOpenId AS FMobile,FMobile AS FAppId,FAppId AS FOpenId,FCreateTime ,FActive
INTO #User1
FROM TWeChatUser AS A
WHERE FUserType = 'Employee'
AND FOpenId LIKE '1%'
UNION ALL
SELECT 'Employee' AS FUserType,FMobile AS FMobile,FOpenId AS FAppId,FAppId AS FOpenId,FCreateTime ,FActive
FROM TWeChatUser AS A
WHERE FUserType = 'Employee'
AND FOpenId LIKE 'wx86d2ff4d5b7e61bc'
UPDATE A
SET A.FCreateTime = B.FCreateTime
FROM TWeChatUser AS A,#User1 AS B
WHERE A.FMobile = B.FMobile
AND A.FAppId = B.FAppId
AND A.FOpenId = B.FOpenId
AND A.FCreateTime < B.FCreateTime
INSERT TWeChatUser(FUserType,FMobile,FAppId,FOpenId,FCreateTime,FActive)
SELECT FUserType,FMobile,FAppId,FOpenId,FCreateTime,FActive FROM #User1 AS A
WHERE NOT EXISTS(SELECT 1 FROM TWeChatUser AS B
WHERE A.FMobile = B.FMobile AND A.FAppId = B.FAppId AND A.FOpenId = B.FOpenId)
DELETE TWeChatUser
WHERE FUserType = 'Employee'
AND FOpenId LIKE '1%'
DELETE TWeChatUser
WHERE FUserType = 'Employee'
AND FOpenId LIKE 'wx86d2ff4d5b7e61bc'
UPDATE A
SET A.FCreateTime = B.FLoginTime
FROM TWeChatUser AS A,(
select FWeChatOpenId,FMobile,FLoginTime from
(
select *, ROW_NUMBER() over(partition by FWeChatOpenId order by FLoginTime ASC) as rowNum
from TLoginSession
) ranked
where ranked.rowNum < 2
AND FUserType = 'MOBEmployee'
) AS B
WHERE B.FWeChatOpenId = A.FOpenId
AND A.FMobile = B.FMobile
AND A.FCreateTime > B.FLoginTime
UPDATE TEmployeeAttendLog SET FWeChatOpenId = FDeviceId ,FDeviceId = ''
WHERE FDeviceId != '' AND FDeviceId NOT IN(SELECT FDeviceId FROM TAttendDevice)
SELECT * FROM TWeChatUser
WHERE FUserType = 'Employee'
ORDER BY FOpenId
WITH T AS (
SELECT A.FMobile,A.FOpenId,A.FCreateTime
FROM TWeChatUser AS A,(
SELECT FOpenId, MIN(CONVERT(VARCHAR,FCreateTime,20) + FMobile) AS FKey
FROM TWeChatUser
WHERE FUserType = 'Employee'
GROUP BY FOpenId
) AS B
WHERE A.FOpenId = B.FOpenId
AND A.FUserType = 'Employee'
AND CONVERT(VARCHAR,A.FCreateTime,20) + A.FMobile = B.FKey
)
SELECT * FROM T
SELECT * FROM TEmployeeAttendLog
order by ftime desc
AND A.FOpenId = 'o9qXw0Pwm2q0Uly_g5fpu1DJ_EYY'
SELECT CONVERT(VARCHAR,GETDATE(),20)