有关如何使用相同材料的标准对行进行优先排序的任何想法?我需要在查询中捕获SG(除法)的值。我只有227,288行的基本查询,并且我从下面得到这些值的原始文件大约是300,00 ++,我的问题是每当我使用基数运行我的查询时,它只捕获行中的第一个材料。
ID MATERIAL DIVISION SCOP(price)
1 a9000 FR390 90
2 b6790 TB900 20
3 a9000 SG2011 35
4 b6790 EU8089 90
从上面的例子中,在227,288个文件中,对于材料a9000,我得到的价格值是90,据说我需要从SG2011获得35的值,除了SG2011,来自其他部门的每个值都可以,也就是说,对于b6790,它的价格可以是20分。分区SG2011价格优先考虑材料。
我正在使用MS Access 2007,我在设计视图或SQL视图中做事。 希望你们能用简单的代码帮助我..(iff..statements或简单地在设计视图中......)或Ms Access中的SQL视图
修改
下面是我的SQL查询 (查询测试 - 这不会加入基本查询,因为它不符合行数,但我能够显示多种材料)
SELECT Base_CSC.ID, Base_CSC.Material, SC_and_Purchase_Price.[Logistic Ref], SC_and_Purchase_Price.[Commercial Ref], Left([Division],2) & ([Commercial Ref]) AS [Comm Ref], Left([Division],2) & ([Logistic Ref]) AS [Log Ref], IIf(Left([Comm Ref],'2')="SG",[SCOP],'') AS [SCOP SG], SC_and_Purchase_Price.[SC in AUD] AS SCOP
FROM Base_CSC LEFT JOIN SC_and_Purchase_Price ON (Base_CSC.Material = SC_and_Purchase_Price.[Commercial Ref]) AND (Base_CSC.Material = SC_and_Purchase_Price.[Logistic Ref])
ORDER BY Base_CSC.ID;
Query Test - 我的测试查询的图像,以显示材料。如图所示材料:LV433620有3个材质的结果。但是一旦我运行了我的最终查询
Final Output Query - 我输出查询的图像
LV433620材料取了第一行的值,据说我需要SCOP SG的输出 - (我刚刚scop SG字段来区分)所以代替257.42。对于材料LV433620,我需要SCOP值215.50。下面是最终输出查询SQL视图
SELECT Base_CSC.ID, Base_CSC.Material, Base_CSC.[Vendor Reference], Base_CSC.[Default Vendor], First(IIf(IsNull([scop3_v2.SCOP]),[scop3_v2_1.SCOP],[scop3_v2.SCOP])) AS SCOP
FROM (Base_CSC LEFT JOIN scop3_v2 AS scop3_v2_1 ON Base_CSC.Material = scop3_v2_1.scop1.SCOPLookup) LEFT JOIN scop3_v2 ON Base_CSC.Material = scop3_v2.scop2.SCOPLookup
GROUP BY Base_CSC.ID, Base_CSC.Material, Base_CSC.[Vendor Reference], Base_CSC.[Default Vendor]
ORDER BY Base_CSC.ID;
答案 0 :(得分:0)
我不确定是否理解,但对于每个DIVISION
的最低ID的MATERIAL
,您可以使用NOT EXISTS()
:
SELECT * FROM YourTable t
WHERE NOT EXISTS(SELECT 1 FROM YourTable s
WHERE t.Material = s.material AND s.id > t.id)
答案 1 :(得分:0)
已解决:从发布的问题中,我创建了一系列查询。从原始来源表我创建了第一个:具有唯一计数的材料(使用标准1完成)第二个:没有SG部门的材料和第三个:具有SG部门的材料,
将此代码放在带有NO SG的材料查询下
`SCOPE: IIf([Query_SC_and_Purchase_Price_Scope_SG].[SCOPE] Is Null,[Query_SC_and_Purchase_Price_Scope_NO_SG].[SCOPE],[Query_SC_and_Purchase_Price_Scope_SG].[SCOPE])`
这适用于具有SG代码查询的材料
SCOP: IIf([Query_SC_and_Purchase_Price_Scope_SG].[SCOPE] Is Null,[Query_SC_and_Purchase_Price_Scope_NO_SG].[SCOPE],[Query_SC_and_Purchase_Price_Scope_SG].[SCOPE])
收集所有这些数据并检查我是否创建了UNION ALL查询
`SELECT Query_SC_and_Purchase_Price_Scope_Unique.*
FROM Query_SC_and_Purchase_Price_Scope_Unique
UNION ALL
SELECT Query_SC_and_Purchase_Price_Scope_SGNOSG_SG.*
FROM Query_SC_and_Purchase_Price_Scope_SGNOSG_SG
UNION ALL SELECT Query_SC_and_Purchase_Price_Scope_SGNOSG_NOSG.*
FROM Query_SC_and_Purchase_Price_Scope_SGNOSG_NOSG;
`
我带来了正确的价值观。