gpt4 book ai didi

mysql - 根据另一个表的条件创建新列

转载 作者:行者123 更新时间:2023-11-30 21:28:26 25 4
gpt4 key购买 nike

由于我之前写的问题很含糊而且写得很愚蠢,我会在这个线程中更明确。这是之前的帖子:How can I create a new column to SQL while adding conditions?

基本上,这两个表是这样的:

vw_RecipeIngredientCheck ( /image/jlArc.png )

SELECT TOP (1000) [RecipeName]
,[RecipeIngredientName]
,[Unit]
,[Amount]
,[DisplayOrder]
,[IngredientGroup]
,[VirtualProductName]
FROM [dbo].[vw_RecipeIngredientCheck]

虚拟产品 ( /image/xU8S7.png )

SELECT TOP (1000) [Id]
,[Name]
,[NativeUnitID]
,[Mapping]
,[Kg]
,[g]
,[l]
,[dl]
,[unit]
,[empty]
,[pack]
,[teaspoon]
,[spoon]
,[can]
,[bundle]
,[clove]
,[smidgen]
,[cube]
,[stick]
,[slice]
,[IsDurable]
,[letter]
,[Glass]
,[ProductImageId]
,[ResolvesToRealProduct]
FROM [dbo].[VirtualProduct]

我的目标是在 vw_RecipeIngredientCheck 表中创建一个新列,将单位转换为标准单位(在 VirtualProduct 表中给出并称为 NativeUnitID)。

需要注意的是,VirtualProduct 表中的单位已经实现了转换逻辑。

因此,重点是在 vw_RecipeIngredientCheck 中创建一个新列,然后使用 [VirtualProductName] 将 [Amount] 与表 VirtualProduct 中以其 [Unit] 命名的列相乘。

例子:

[NewColumn] = [Amount] *(VirtualProduct 中的列名 = [Unit])

基本上,加入两个表后我得到了这个:

Joined tables

我不知道如何编写 SQL 查询,以便将 Amount 乘以与其 Unit 匹配的列。例如,在上图中,索引为 33 的行具有以下内容:NativeUnitID:3(即 Kg)单位:克数量:250

IngredientStd 列中,我想将以克为单位的当前数量转换为其 NativeUnitID,即 Kg。基本上,数量应该乘以“g”栏,这基本上就是单位栏的内容。令我烦恼的是将 [Unit] 中的值与列名进行比较。

最佳答案

你得试试动态建表查询来实现。引用:https://www.c-sharpcorner.com/blogs/creating-a-dynamic-table-in-sql-server1

关于mysql - 根据另一个表的条件创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57607119/

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