gpt4 book ai didi

mysql - 不同列号的两个 SELECT 的 SQL-UNION 产生空值

转载 作者:行者123 更新时间:2023-11-30 23:49:53 25 4
gpt4 key购买 nike

所以我目前正在使用 EVE 静态数据库导出,并且在尝试报告我的程序其余部分所需的值列表时遇到了障碍。我目前正在尝试使用以下方法获取蓝图所需的类型 ID、名称、废物和数量:

SELECT typeid,name,waste,greatest(0,sum(quantity)) quantity FROM ( 
SELECT invTypes.typeid typeid,invTypes.typeName name,null AS waste,quantity
FROM invTypes,invTypeMaterials
WHERE invTypeMaterials.materialTypeID=invTypes.typeID
and invTypeMaterials.TypeID=@paramID
UNION
SELECT invTypes.typeid typeid,invTypes.typeName name,invBlueprintTypes.wasteFactor
waste, invTypeMaterials.quantity*r.quantity*-1 quantity
FROM invTypes,invTypeMaterials,ramTypeRequirements r,invBlueprintTypes
WHERE invTypeMaterials.materialTypeID=invTypes.typeID
and invTypeMaterials.TypeID =r.requiredTypeID
and r.typeID = invBlueprintTypes.blueprintTypeID and r.activityID = 1
and invBlueprintTypes.productTypeID=@paramID and r.recycle=1
) t GROUP BY typeid,name

现在这条SQL是根据之前的一组没有返回废值的代码改编的。 wasteFactor 存储在数据库的 invBlueprintTypes 表中。每当我运行我的程序并使用此函数时(我有一组单独的代码将值加载到 C# List 数组中,目前只是忽略对“名称”值的获取)浪费总是作为空值返回。我假设这是因为我在做“null AS 浪费”,但我不知道如何在没有这个的情况下合并两个 SELECT 函数,因为第一个 SELECT 最初只选择了 3 个值。如果有人知道我应该如何调整我的代码,我将不胜感激,因为我对 SQL 还很陌生,这有点超出了我的知识范围。谢谢!

最佳答案

SELECT typeid,name,max(waste),greatest(0,sum(quantity)) quantity FROM (  ....

关于mysql - 不同列号的两个 SELECT 的 SQL-UNION 产生空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17543894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com