复制
收藏
提问
简洁
select top 40 inv_dict.inv_code, inv_dict.inv_name, inv_dict.inv_sepc, convert(numeric(18,0),sum(b.amount)) amount, su.unit_name, b.price, convert(numeric(18,2),sum(b.amount_money)) amount_money, sv.ven_code, sv.ven_name from mate_whr_detail b left join mate_whr_main a on a.depot_id=b.depot_id left join sys_dept c on a.dept_id=c.dept_id and c.comp_code=a.comp_code left join sys_mate_dict as inv_dict on b.inv_id=inv_dict.mate_id left join sys_store_dict as ssd on a.out_store_id = ssd.store_id and a.comp_code=ssd.comp_code left join sys_factory_dict as fa_dict on inv_dict.factory_code=fa_dict.factory_code left join sys_unit su on su.unit_id=inv_dict.unit_id left join sys_vendor sv on b.ven_id=sv.ven_id where a.is_in_out = 0 and a.bus_type_id in (2,5,6,8,10,12,15,17,22,24,31,32,21,79,80) and (a.out_store_id='11') and (a.state='2' ) and a.acct_year+a.acct_month ='202406' --and a.acct_year+a.acct_month ='202207' and a.comp_code='1001' and a.copy_code='101' and isnull(a.source_flag,'') <>'13' and isnull(a.source_flag,'') <>'7' group by inv_dict.inv_code, inv_dict.inv_name, inv_dict.inv_sepc, su.unit_name, b.price, sv.ven_code, sv.ven_name 转换成按照金额排序的查询语句
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
要将现有的SQL查询语句转换成按照金额排序的查询语句,你需要在GROUP BY
子句之后添加一个ORDER BY
子句,并且指定按照amount_money
字段进行排序。由于你希望按照金额降序排列,可以使用DESC
关键字。以下是修改后的查询语句:
SELECT TOP 40
inv_dict.inv_code,
inv_dict.inv_name,
inv_dict.inv_sepc,
CONVERT(numeric(18,0), SUM(b.amount)) AS amount,
su.unit_name,
b.price,
CONVERT(numeric(18,2), SUM(b.amount_money)) AS amount_money,
sv.ven_code,
sv.ven_name
FROM mate_whr_detail b
LEFT JOIN mate_whr_main a ON a.depot_id = b.depot_id
LEFT JOIN sys_dept c ON a.dept_id = c.dept_id AND c.comp_code = a.comp_code
LEFT JOIN sys_mate_dict AS inv_dict ON b.inv_id = inv_dict.mate_id
LEFT JOIN sys_store_dict AS ssd ON a.out_store_id = ssd.store_id AND a.comp_code = ssd.comp_code
LEFT JOIN sys_factory_dict AS fa_dict ON inv_dict.factory_code = fa_dict.factory_code
LEFT JOIN sys_unit su ON su.unit_id = inv_dict.unit_id
LEFT JOIN sys_vendor sv ON b.ven_id = sv.ven_id
WHERE a.is_in_out = 0
AND a.bus_type_id IN (2, 5, 6, 8, 10, 12, 15, 17, 22, 24, 31, 32, 21, 79, 80)
AND (a.out_store_id = '11')
AND (a.state = '2')
AND a.acct_year + a.acct_month = '202406'
AND a.comp_code = '1001'
AND a.copy_code = '101'
AND ISNULL(a.source_flag, '') <> '13'
AND ISNULL(a.source_flag, '') <> '7'
GROUP BY inv_dict.inv_code,
inv_dict.inv_name,
inv_dict.inv_sepc,
su.unit_name,
b.price,
sv.ven_code,
sv.ven_name
ORDER BY amount_money DESC; -- 添加了按照金额_money降序排列的语句
请注意,我使用了AS
关键字来给SUM
的结果指定别名,这在ORDER BY
子句中是必需的。此外,我假设amount_money
是你想要排序的金额字段。如果需要按照其他金额字段排序,只需将amount_money
替换为相应的字段名即可。
你觉得结果怎么样?