从不同的结果中选择后获取身份

时间:2013-02-18 17:10:33

标签: sql sql-server tsql

我有2个表(Model_Table,Items_Table)

Model_Tabl ( ID, ModelName, ModelQuantity)
Items_Tabl ( I_Code, IName, ID)
将新行插入(Model_Table)后的

- 触发器将多行插入(Items_Table)取决于(Model_Table)的ModelQuantity ,直到现在它的工作正常

我创建了"select distinct ModelName , Sum(ModelQuantity) group by ModelName" 我的结果很好

我的问题是

当我从(DISTINCT)查询中选择模型名称时,我想知道从(Model_Table)中选择了哪个(ID)

Model_ID(TO)Model_Name = 1(TO)很多 TY

3 个答案:

答案 0 :(得分:0)

首先,你不需要那里的DISTINCT,所以你可以摆脱它。然后,你可以试试这个:

SELECT ID, ModelName, SUM(ModelQuantity) Quantity
FROM Model_Tabl 
GROUP BY ID, ModelName

好的,正如我在评论中解释的那样,如果你有多个同名的ID,你需要选择一个,最大或最小ID(你最终还是没有意义)只需在确实需要识别该ID时选择一个ID,但是,这里是:

SELECT MIN(ID) ID, ModelName, SUM(ModelQuantity) Quantity
FROM Model_Tabl 
GROUP BY ModelName

答案 1 :(得分:0)

只是这样做:

select ID, ModelName , Sum(ModelQuantity) group by ID, ModelName

只要ID和ModelName是1对1,你就是好的。

(顺便说一下,你的“独特”在这里是多余的 - Select distinct a,b,c from tbl只是Select a,b,c from tbl group by a,b,c的简写

答案 2 :(得分:0)

您在model_table中有一个标识列,但在查看ModelQuantity字段的查询中似乎没有使用它。你不想做这样的事吗?

select ModelQuantity
from Model_table
where id = @@identity