34,590
社区成员
发帖
与我相关
我的任务
分享
SELECT
u.userid
FROM
user AS u
LEFT JOIN sell AS s ON u.userid = s.userid
WHERE
s.buydate BETWEEN '2017-03-01 00:00:00'
AND '2018-03-01 23:59:59'
GROUP BY
u.userid
HAVING
SUM (s.money) / datediff(
MONTH,
( CASE WHEN u.createtime > '2017-03-01 00:00:00' THEN u.createtime ELSE '2017-03-01 00:00:00' END ),
'2018-03-01'
) BETWEEN 0
AND 200
[/quote]
SELECT
u.userid
FROM
user AS u
LEFT JOIN sell AS s ON u.userid = s.userid
WHERE
s.buydate BETWEEN '2017-03-01 00:00:00'
AND '2018-03-01 23:59:59'
GROUP BY
u.userid
HAVING
SUM (s.money)*1.0 / MAX(datediff(
MONTH,
( CASE WHEN u.createtime > '2017-03-01 00:00:00' THEN u.createtime ELSE '2017-03-01 00:00:00' END ),
'2018-03-01'
)) BETWEEN 0
AND 200
SELECT
u.userid
FROM
user AS u
LEFT JOIN sell AS s ON u.userid = s.userid
WHERE
s.buydate BETWEEN '2017-03-01 00:00:00'
AND '2018-03-01 23:59:59'
GROUP BY
u.userid
HAVING
SUM (s.money) / datediff(
MONTH,
( CASE WHEN u.createtime > '2017-03-01 00:00:00' THEN u.createtime ELSE '2017-03-01 00:00:00' END ),
'2018-03-01'
) BETWEEN 0
AND 200
[/quote]
主要是业务问题,代码没问题。。。
SELECT
u.userid
FROM
user AS u
LEFT JOIN sell AS s ON u.userid = s.userid
WHERE
s.buydate BETWEEN '2017-03-01 00:00:00'
AND '2018-03-01 23:59:59'
GROUP BY
u.userid
HAVING
SUM (s.money) / datediff(
MONTH,
( CASE WHEN u.createtime > '2017-03-01 00:00:00' THEN u.createtime ELSE '2017-03-01 00:00:00' END ),
'2018-03-01'
) BETWEEN 0
AND 200
SELECT AVG(money) AS avgmoney ,
createtime ,
userid
FROM sell
WHERE userid IN ( SELECT userid ,
MAX(buydate) AS buydate
FROM sell
GROUP BY userid
HAVING DATEDIFF(DAY, MAX(buydate), GETDATE()) > 10 )
GROUP BY createtime ,
userid
select a.userid,username from sell as s join [user] as u
on s.userid=u.userid join(select userid,buydate from sell)t
on t.userid=u.userid
where datepart(dd,s.buydate)-datepart(dd,t.buydate)>10
SELECT *
FROM ( SELECT userid ,
MAX(buydate) AS buydate
FROM sell
GROUP BY userid
) t
JOIN [user] ON [user].userId = t.userid
WHERE DATEDIFF(DAY, buydate, GETDATE()) > 10