我有以下SQL查询:
SELECT qryRef_Routes_tbl.Ref_Route_Name, qryRef_Routes_tbl.Ref_Route_ID, tblFMS_Data.FM_FinYear, tblFMS_Data.FM_Period,
tblPeriod_Lookup.PL_ID, Sum(IIf([FM_TrustNo]=0 And [FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS Success,
Sum(IIf([FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS CountPrevent
FROM
(
(
( tblFMS_Data INNER JOIN qryRef_Routes_tbl ON tblFMS_Data.FM_Route = qryRef_Routes_tbl.Ref_Route_ID )
INNER JOIN tblRCM_II_Assets ON tblFMS_Data.FM_EllipseNo = tblRCM_II_Assets.RI_Number
)
INNER JOIN tblPeriod_Lookup ON tblFMS_Data.FM_FinYear = tblPeriod_Lookup.PL_FinYear
AND tblFMS_Data.FM_Period = tblPeriod_Lookup.PL_PeriodNo
)
INNER JOIN qryRef_Detectable_Failure_Valid_Combo ON tblFMS_Data.FM_Component2 = qryRef_Detectable_Failure_Valid_Combo.Ref_Fault_Comp2_ID
AND tblFMS_Data.FM_Component = qryRef_Detectable_Failure_Valid_Combo.Ref_Fault_Comp1_ID
GROUP BY qryRef_Routes_tbl.Ref_Route_Name, qryRef_Routes_tbl.Ref_Route_ID, tblFMS_Data.FM_FinYear, tblFMS_Data.FM_Period, tblPeriod_Lookup.PL_ID
HAVING
(
(
tblPeriod_Lookup.PL_ID Between [Forms]![frmMainMenu]![PriorPeriodID] And
([Forms]![frmMainMenu]![PriorPeriodID]-12)
)
)
UNION
SELECT qryRef_Routes_tbl.Ref_Route_Name, qryRef_Routes_tbl.Ref_Route_ID, tblFMS_Data.FM_FinYear, tblFMS_Data.FM_Period,
tblPeriod_Lookup.PL_ID, Sum(IIf([FM_TrustNo]=0 And [FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS Success,
Sum(IIf([FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS CountPrevent
FROM
(
(
( tblFMS_Data INNER JOIN qryRef_Routes_tbl ON tblFMS_Data.FM_Route = qryRef_Routes_tbl.Ref_Route_ID)
INNER JOIN tblRCM_II_Assets ON tblFMS_Data.FM_EllipseNo = tblRCM_II_Assets.RI_Pway_Number
)
INNER JOIN tblPeriod_Lookup ON tblFMS_Data.FM_FinYear = tblPeriod_Lookup.PL_FinYear
AND tblFMS_Data.FM_Period = tblPeriod_Lookup.PL_PeriodNo
)
INNER JOIN qryRef_Detectable_Failure_Valid_Combo ON tblFMS_Data.FM_Component2 = qryRef_Detectable_Failure_Valid_Combo.Ref_Fault_Comp2_ID
AND tblFMS_Data.FM_Component = qryRef_Detectable_Failure_Valid_Combo.Ref_Fault_Comp1_ID
GROUP BY qryRef_Routes_tbl.Ref_Route_Name, qryRef_Routes_tbl.Ref_Route_ID, tblFMS_Data.FM_FinYear, tblFMS_Data.FM_Period, tblPeriod_Lookup.PL_ID
HAVING
(
(
tblPeriod_Lookup.PL_ID Between [Forms]![frmMainMenu]![PriorPeriodID] And [Forms]![frmMainMenu]![PriorPeriodID]-12
)
);
此结果是重复的。我希望组合重复行的结果。
请注意,在Union'
的2个查询中,Join查询略有不同答案 0 :(得分:0)
如果您不想复制值,请使用public static void main(String[] args) {
Scanner userinput = new Scanner(System.in);
String guess = "";
String scramble = "";
String[] questions = {"animal", "duck", "dinosaur", "butterfly", "dog", "horse", "cow", "cat", "elephant", "crocodile", "alligator"};
char charArr[] = null;
String wordToGuess = questions[new Random().nextInt(questions.length)];// questions[0]
for (int a = 0; a < wordToGuess.length(); a++) {
charArr = wordToGuess.toCharArray(); //0a 1n 2i 3m 4a 5l 6s
//generating a random number from the length of word to guess. Example: Animal, generated no = "1"
int rdm = new Random().nextInt(charArr.length);
//shuffling the words
char temp = charArr[a]; //charArr[0] is the letter "A" which is moved to temp
charArr[a] = charArr[rdm]; //A is then moved to charArr[rdm] which is index 1, so the word is currently "AAimals'
charArr[rdm] = temp; //charArr[1] contains n which is then moved to temmp, which is 0, becoming nAimal
}
scramble = new String(charArr);
System.out.println("Your word is: " + scramble);
do {
while (!guess.equals(wordToGuess)) {
System.out.print(">>> ");
guess = userinput.nextLine();
if (!guess.equals(wordToGuess)) {
System.out.print(">>> ");
System.out.println("Please try again!");
} else {
System.out.println(">>> Great Job getting the answer!");
}
}
}while (!guess.equalsIgnoreCase("end"));
}
}
答案 1 :(得分:0)
也许你的意思是在聚合上结合工会的结果......
SELECT sub.Ref_Route_Name
, sub.Ref_Route_ID
, sub.FM_FinYear
, sub.FM_Period
, sub.PL_ID
, Sum(sub.Success) as Success
, Sum(sub.CountPrevent) as countPrevent
FROM (
SELECT qryRef_Routes_tbl.Ref_Route_Name
, qryRef_Routes_tbl.Ref_Route_ID
, tblFMS_Data.FM_FinYear
, tblFMS_Data.FM_Period
, tblPeriod_Lookup.PL_ID
, Sum(IIf([FM_TrustNo]=0 And [FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS Success
, Sum(IIf([FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS CountPrevent
FROM tblFMS_Data
INNER JOIN qryRef_Routes_tbl
ON tblFMS_Data.FM_Route = qryRef_Routes_tbl.Ref_Route_ID
INNER JOIN tblRCM_II_Assets
ON tblFMS_Data.FM_EllipseNo = tblRCM_II_Assets.RI_Number
INNER JOIN tblPeriod_Lookup PL
ON tblFMS_Data.FM_FinYear = tblPeriod_Lookup.PL_FinYear
AND tblFMS_Data.FM_Period = tblPeriod_Lookup.PL_PeriodNo
INNER JOIN qryRef_Detectable_Failure_Valid_Combo rdfvc
ON tblFMS_Data.FM_Component2 = rdfvc.Ref_Fault_Comp2_ID
AND tblFMS_Data.FM_Component = rdfvc.Ref_Fault_Comp1_ID
WHERE PL.PL_ID Between [Forms]![frmMainMenu]![PriorPeriodID] And[Forms]![frmMainMenu]![PriorPeriodID]-12
GROUP BY qryRef_Routes_tbl.Ref_Route_Name
, qryRef_Routes_tbl.Ref_Route_ID
, tblFMS_Data.FM_FinYear
, tblFMS_Data.FM_Period, tblPeriod_Lookup.PL_ID
UNION ALL
SELECT qryRef_Routes_tbl.Ref_Route_Name
, qryRef_Routes_tbl.Ref_Route_ID
, tblFMS_Data.FM_FinYear
, tblFMS_Data.FM_Period
, tblPeriod_Lookup.PL_ID
, Sum(IIf([FM_TrustNo]=0 And [FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS Success
, Sum(IIf([FM_Incident]=25 And [Ref_Fault_Valid_Combo]=-1,1,0)) AS CountPrevent
FROM tblFMS_Data
INNER JOIN qryRef_Routes_tbl
ON tblFMS_Data.FM_Route = qryRef_Routes_tbl.Ref_Route_ID
INNER JOIN tblRCM_II_Assets
ON tblFMS_Data.FM_EllipseNo = tblRCM_II_Assets.RI_Pway_Number
INNER JOIN tblPeriod_Lookup PL
ON tblFMS_Data.FM_FinYear = tblPeriod_Lookup.PL_FinYear
AND tblFMS_Data.FM_Period = tblPeriod_Lookup.PL_PeriodNo
INNER JOIN qryRef_Detectable_Failure_Valid_Combo rdfvc
ON tblFMS_Data.FM_Component2 = rdfvc.Ref_Fault_Comp2_ID
AND tblFMS_Data.FM_Component = rdfvc.Ref_Fault_Comp1_ID
WHERE PL.PL_ID Between [Forms]![frmMainMenu]![PriorPeriodID] And [Forms]![frmMainMenu]![PriorPeriodID]-12
GROUP BY qryRef_Routes_tbl.Ref_Route_Name
, qryRef_Routes_tbl.Ref_Route_ID
, tblFMS_Data.FM_FinYear
, tblFMS_Data.FM_Period
, tblPeriod_Lookup.PL_ID
) Sub
GROUP BY Sub.Ref_Route_Name
, sub.Ref_Route_ID
, sub.FM_FinYear
, sub.FM_Period
, sub.PL_ID
不确定查询的重复结果是否应“合并”或作为重复删除,因此添加了一个联合。