我试图用sql查询从我们的测试数据库中提取一些数据而且我被卡住了。下面是我运行数据时的数据表示以及运行后的外观。
Sample_Number Centre_Code DateEntered AssayName
---------------------------------------------------
1 234 9/16/2010 TEST 1
1 234 9/16/2010 TEST 2
1 234 9/16/2010 TEST 3
1 234 9/16/2010 TEST 4
1 234 9/16/2010 TEST 5
2 345 9/17/2010 TEST 1
2 345 9/17/2010 TEST 2
2 345 9/17/2010 TEST 3
3 456 9/16/2010 TEST 1
3 456 9/16/2010 TEST 2
3 456 9/16/2010 TEST 3
3 456 9/16/2010 TEST 4
3 456 9/16/2010 TEST 5
3 456 9/16/2010 TEST 6
3 456 9/16/2010 TEST 7
Sample_Number Centre_Code DateEntered ProfileName
-----------------------------------------------------
1 234 9/16/2010 PROFILE 1
2 345 9/17/2010 PROFILE 2
3 456 9/16/2010 PROFILE 3
我遇到的问题是我有这些测试配置文件,其中一组特定的测试组成了每个样本的配置文件,我无法将它们分组到配置文件中,我只能进行单独的测试。我在考虑在查询中使用CASE并指定每个配置文件测试的内容,但这似乎并不高效,而且它也超出了我的sql知识限制。这是我到目前为止的查询。
SELECT User.Sample.Sample_Number,User.Centre.Centre_Code, User.Sample.DateEntered, User.Assay.AssayName
FROM User.Sample INNER JOIN
User.Centre ON User.Sample.Centre_ID = User.Centre.Centre_Id INNER JOIN
User.Profile ON User.Sample.Profile_ID = User.Profile.Profile_ID INNER JOIN
User.Batch ON User.Sample.Batch_ID = User.Batch.Batch_ID INNER JOIN
User.SampleResult ON User.Sample.Sample_ID = User.SampleResult.Sample_ID INNER JOIN
User.Assay INNER JOIN
User.Result ON User.Assay.Assay_ID = User.Result.Assay_ID ON
User.SampleResult.Assay_ID = User.Assay.Assay_ID AND User.SampleResult.Result_ID = User.Result.Result_ID INNER JOIN
User.Test ON User.Profile.Profile_ID = User.Test.Profile_ID AND User.Assay.Assay_ID = User.Test.Assay_ID
WHERE (User.Sample.DateEntered > CONVERT(DATETIME, '2010-09-01 23:59:59', 102)) AND (User.Sample.DateEntered < CONVERT(DATETIME,
'2010-09-20 00:00:00', 102))
GROUP BY User.Sample.DateEntered, User.SampleResult.Sample_ID, User.Assay.AssayName, User.Centre.Centre_Code,
User.Sample.Sample_ID, User.Sample.Sample_Number
供参考
概况1 =测试1,测试2,测试3,测试4,测试5
配置文件2 =测试1,测试2,测试3
配置文件3 =测试1,测试2,测试3,测试4,测试5,测试6,测试7
配置文件中的每个测试都将具有相同的样本编号,中心代码和输入日期。
运行查询后,我可以对sql查询执行任何操作,甚至可以在excel中对其进行操作吗?
答案 0 :(得分:2)
如何在另一个数据库表中设置配置文件和测试之间的关系并加入该表?这样你可以选择/分组你想要的个人资料名称,而不是测试名称
答案 1 :(得分:0)
GROUP BY子句中有太多字段。 从GROUP BY子句中删除User.Assay.AssayName。 这应该让您更接近您正在寻找的东西。 您可能还想从GROUP BY子句中删除其他字段。 我希望这会有所帮助。