page contents

求大佬帮忙分析一下这个需求的SQL应该怎么写

Pack 发布于 2020-02-11 17:36
阅读 461
收藏 0

需求:有一张表,字段如下:(oracle数据库)

id – VARCHAR2

user_dept – VARCHAR2

user_name – VARCHAR2 (这个不是用户名哈,这个是公司的名称)

user_date – TIMESTAMP

balance – NUMBER

user_account, – VARCHAR2

create_user, – VARCHAR2

create_date, – TIMESTAMP

remark – VARCHAR2

update_date – TIMESTAMP

根据用户的账户和用户的名称进行分组,并且要返回这些字段:user_code,user_dept,user_name,user_date,balance,user_account,create_user,create_date,remark


目前错误的sql如下:

SELECT

user_code,   -- VARCHAR2

user_dept,   -- VARCHAR2

user_name,   -- VARCHAR2

user_date,   -- TIMESTAMP

balance,     -- NUMBER

user_account,-- VARCHAR2

create_user, -- VARCHAR2

create_date,  -- TIMESTAMP

remark       -- VARCHAR2

FROM

table 

WHERE

create_date = to_date( '2019-8-27', 'yyyy-mm-dd' ) 

GROUP BY

user_account,

user_name;

试过如下SQL,分组成功,但是只按照了一个字段分组,返回的字段只有两个


SELECT

user_account,            -- NUMBER

sum(balance),  -- VARCHAR2

FROM

table 

WHERE

create_date = to_date( '2019-8-27', 'yyyy-mm-dd' ) 

GROUP BY

user_account;

大佬们,帮忙看看,应该怎么使用SQL实现

可能是需求有问题哈,我用java代码的stream解决了,耽误大佬时间了。

327
Pack
Pack

SELECT
user_account,
min(user_code),
min(user_dept),
min(user_name),
min(user_date),
min(balance),
min(create_user),
min(create_date),
min(remark)
FROM
table
WHERE
create_date = to_date( ‘2019-8-27’, ‘yyyy-mm-dd’ )
GROUP BY
user_account;

请先 登录 后评论