我目前正在使用一个大的SELECT语句,它为我提供了多个表中所需的所有信息(性能不是很遗憾),但我想做的是每个testcase只显示一个条目.foreignID AND variant.idVariant,具有最高计划测试值的日期。日期
我尝试过Group By,但尚未成功。
SELECT testcase.foreignID AS TcID, testcase.foreignOrderNr AS TcOrderNr,testcase.Name AS TcName,variant.Name AS Variant,device.Supplier,plannedtestset.foreignID AS TestSetID,plannedtestset.Date,tester.Name AS Tester,testcaseexecution.Result,testcaseexecution.Comment,sw_version.Version AS SW_Version,hw_version.Version AS HW_Version,testcase.ABP,testtype.Name AS TestType,project.Name AS Project
FROM mydb.testcaseexecution
INNER JOIN mydb.testcase
ON testcaseexecution.Testcase_idTestcase=testcase.idTestcase
INNER JOIN mydb.plannedtestset
ON testcaseexecution.PlannedTestSet_idPlannedTestSet=plannedtestset.idPlannedTestSet
INNER JOIN mydb.device
ON plannedtestset.Device_idDevice=device.idDevice
INNER JOIN mydb.variant
ON device.Variant_idVariant=variant.idVariant
INNER JOIN mydb.tester
ON plannedtestset.Tester_idTester=tester.idTester
INNER JOIN mydb.sw_version
ON plannedtestset.SW_Version_idSW_Version=sw_version.idSW_Version
INNER JOIN mydb.testtype
ON plannedtestset.TestType_idTestType=testtype.idTestType
INNER JOIN mydb.project
ON plannedtestset.Project_idProject=project.idProject
INNER JOIN mydb.hw_version
ON device.HW_Version_idHW_Version=hw_version.idHW_Version
WHERE plannedtestset.Date In(
SELECT Max(plannedtestset.Date)
FROM mydb.plannedtestset
GROUP BY testcase.idTestcase
)
答案 0 :(得分:-1)
我在评论中的意思是这样的:
SELECT .... , MAX(A.plannedtestset.Date),...
FROM (<your original select>) A ;
我还建议将别名添加到内部查询的检索字段的名称中。
这是简单的(适合您)解决方案。还有其他解决方案可以修改您的原始查询,但是(因为性能对您来说似乎不是问题)我会先按照此处提出的方向进行。