Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS-Access查询中的计数函数_Ms Access - Fatal编程技术网

MS-Access查询中的计数函数

MS-Access查询中的计数函数,ms-access,Ms Access,在一个表中,我有以下列,相同的列将在查询中 VIN Person Number Base price 12 ABC 100 36 ABC 200 71 DEF 100 44 ABC 500 66

在一个表中,我有以下列,相同的列将在查询中

VIN            Person Number         Base price    
12                ABC                100    
36                ABC                200
71                DEF                100
44                ABC                500
66                698                300
etc               etc                etc

新列(第4列)用于激励,如果人数超过2,则应用基本价格的0.4%,如果人数少于2,则应用基本价格的0.3%。如何在查询中构建此功能。

使用Count函数计算人号出现的频率。 我建议使用单独的折扣表来存储折扣百分比。 这样,您可以保持折扣百分比的灵活性,避免硬编码

SELECT x.VIN, x.[Person Number], x.[Base Price], 
IIF((SELECT Count([Person Number]) FROM yourtable WHERE [Person Number] = x.[Person Number]) >=2, x.[Base Price]*0.96, x.[Base Price]*0.98) AS NettPrice
FROM yourtable AS x;
欢迎来到stack overflow:-)请查看并了解如何创建堆栈溢出。这将有助于得到有用的答案。