我想创建一份报告,汇总最近14个工作日的数据。这意味着报告需要排除星期六和星期日(也许假期)。
我还在研究如何做到这一点。我相信这将是一个vba解决方案。但是现在我遇到了另一个我不知道如何解决的问题。
我的表格包含产品的数量,数量和输入日期(存储为" mm / dd / yyyy hh:nn")。
当我在表格中查询过去两周的条目时,我在查询中使用以下表达式:
>=#11/24/2016#
如果日期在过去2周内且特定交易的时间是午夜,即00:00,则查询返回产品和数量。如果时间不是午夜,则查询返回产品,但数量字段为空。如果我使用date()或now()并不重要。如果我使用实际日期,例如:
,则无关紧要TRANSFORM Sum(tblWarehouseTransfer.Qty) AS SumOfQty
SELECT tblWarehouseTransfer.ProductID
FROM tblWarehouseTransfer
WHERE (((tblWarehouseTransfer.DateMoved) Between DateAdd("d",1,Now()) And DateAdd("d",-14,Now())))
GROUP BY tblWarehouseTransfer.ProductID
ORDER BY tblWarehouseTransfer.ProductID
PIVOT (Date())-[datemoved]+1 In (1,2,3,4,5,6,7,8,9,10,11,12,13,14);
因此,完整的查询是:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
public class ReadIntFromFile {
public static void main(String []args){
String fileName = "numbers_line.txt";
List<String> numbersArrayList = new ArrayList<String>();
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
numbersArrayList = Arrays.asList(line.split(" "));
}
} catch (IOException e) {
e.printStackTrace();
}
String[] numbersStringArray = new String[numbersArrayList.size()];
numbersStringArray = numbersArrayList.toArray(numbersStringArray);
int[] numbersIntArray = new int[numbersStringArray.length];
for(int i = 0;i < numbersStringArray.length;i++) {
numbersIntArray[i] = Integer.parseInt(numbersStringArray[i]);
}
for(int x : numbersIntArray)
System.out.println(x);
}
}
当表格字段属性包含&#34; hh:nn&#34;时,如何显示产品和数量?而且时间不是00:00?我需要查询是动态的,所以我需要使用date()或now()而不是特定的日期。
答案 0 :(得分:0)
我想出了解决问题的方法。我已将DateMoved字段拆分为2,方法是在表格中创建一个仅包含小时和分钟的新字段,即“短时间”。通过将数据作为DateValue(day())输入'DateMoved'字段,即“短日期”,时间被截断。现在,产品和数量字段显示在报告中,查询仍然是动态的。查询SQL没有改变,只是日期存储在DateMoved字段中的方式。