复制
收藏
提问
简洁

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 转换成按照金额排序的查询语句

d4b7ec5c6
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替换为相应的字段名即可。

你觉得结果怎么样?
如何将SQL查询结果按金额排序?
SQL查询语句中如何使用ORDER BY子句?
SQL查询中如何实现多列排序?
如何修改现有SQL查询以添加排序条件?
SQL查询中如何使用TOP关键字进行限制?
SQL查询中如何实现金额字段的数值转换?

以上内容由AI搜集生成,仅供参考

在线客服