下面有一个查询,我使用左外连接交叉引用同一个表。基本上我想交叉引用最小\u大小\u代码字段来反映最小\u实际\u大小和最大\u大小\u代码字段来反映最大\u实际\u大小。然而,我没有得到正确的答案,我正在寻找。
下面是我基于sql查询的答案
理想答案如下
下面是我的代码
select A.week,A.style,A.Color, A.location, A.Actual_size, A.size_code, A.Min_size_code, A.Max_size_code,
min(B.Actual_size) over(partition by A.week,A.style,A.Color,A.location) Min_Actual_Size,
max(B.Actual_size) over(partition by A.week,A.style,A.Color,A.location) Max_Actual_Size
from
(
select week, style, Color, location, Actual_size, size_code,
min(size_code)over(partition by week,style,Color,location) min_size_code,
max(size_code)over(partition by week,style,Color,location) max_size_code
from TestSizeTable where Style = 'AB123' and color = 'WY4567'
and week = '202002' and location in ( '111')
) A
Left outer Join
TestSizeTable B
on ( A.Style = B.Style and A.Color = B.Color and A.Week = B.Week
and A.Location = B.Location)
where (B.size_code = A.min_size_code or B.size_code = A.max_size_code)
任何帮助都太好了!
2条答案
按热度按时间uujelgoq1#
我认为问题在于列实际大小的数据类型。我怀疑是
varcahr
在这种情况下,14小于2。你的代码在这里运行良好。
请检查更新的解决方案以获取
varchar
列(实际大小)。vom3gejh2#
这可能不是理想的方式,但我得到了一个答案,从下面修改代码。