背景:-我有一个场景,我想找出我们在被指定为首选供应商的项目中引用的项目的价值,以及我们未命名的项目的价值。
我可以使用的表是 dba.lead -> dba.a_quotelne 决定是否指定项目的列是:"dba"."a_quotelne"."altlineref" 如果 altlineref = 0 那么我们没有命名,如果它 = 1,我们就被命名了。但是,只有每组项目的第一行包含 1 或 0。其余为 Null。
例子
"leadno" "lead_desc" "lineno" "calc_value" "altlineref" "calc_groupingref"
1 Canary Wharf 1 10 0 1000
1 Canary Wharf 2 16 Null 1000
1 Canary Wharf 3 12 Null 1000
1 Canary Wharf 4 12 1 1001
1 Canary Wharf 5 13 Null 1001
2 Rosente Lane 1 14 0 1002
2 Rosente Lane 2 14 1 1003
2 Rosente Lane 3 12 Null 1003
2 Rosente Lane 1 15 1 1004
2 Rosente Lane 2 267 Null 1004
2 Rosente Lane 3 298 Null 1004
然后,我使用以下代码将指定值和非指定值分开,但我现在需要每个值的总数,然后以某种方式仅在更大的报告中使用该计算的总数。
SELECT "dba"."lead"."leadno",
"dba"."lead"."lead_desc",
"dba"."a_quotelne"."quoteno",
"dba"."a_quotelne"."lineno",
"dba"."a_quotelne"."calc_value" * MAX("dba"."a_quotelne"."altlineref") OVER (PARTITION BY "dba"."a_quotelne"."calc_groupingref") AS SPEC_VALUE,
"dba"."a_quotelne"."calc_value" - SPEC_VALUE AS NONSPEC_VALUE
FROM "dba"."a_quotelne",
"dba"."lead"
WHERE ( "dba"."a_quotelne"."leadno" = "dba"."lead"."leadno" )
GROUP BY "dba"."a_quotelne"."altlineref",
"dba"."a_quotelne"."calc_groupingref",
"dba"."a_quotelne"."calc_value",
"dba"."a_quotelne"."quoteno",
"dba"."lead"."lead_desc",
"dba"."lead"."leadno",
"dba"."a_quotelne"."lineno"
我希望达到的结果如下
"leadno" "lead_desc" Nonspec value Spec value
1 Canary Wharf 38 25
2 Rosente Lane 14 606
正如您可能知道的那样,我在这里有点超出我的深度,任何帮助将不胜感激 - 如果有人对如何拆分指定和非指定值有更好的建议,请包括在内。
提前谢谢了
菲尔