简体   繁体   English

如何将这两个查询合并为一个?

[英]How do I combine these two queries into one?

Query1: 查询1:

    SELECT DISTINCT FirstOfFrequencyMHz, Min(LicenceData.distance) AS CoFX
FROM [Freq List], LicenceData
WHERE ((([LicenceData].class_stat) Like 'F*') And (([LicenceData].type_lc)="A") And (([LicenceData].frequency) Between FirstOfFrequencyMHz-0.0249 And FirstOfFrequencyMHz+0.0249))
GROUP BY FirstOfFrequencyMHz

Query2: 查询2:

    SELECT DISTINCT FirstOfFrequencyMHz, Min(LicenceData.distance) AS CoMO
FROM [Freq List], LicenceData
WHERE ((([LicenceData].class_stat) Like 'M*') And (([LicenceData].type_lc)="A") And (([LicenceData].frequency) Between FirstOfFrequencyMHz-0.0249 And FirstOfFrequencyMHz+0.0249))
GROUP BY FirstOfFrequencyMHz

Combined Query Attempt: 组合查询尝试:

SELECT DISTINCT FirstOfFrequencyMHz, 

(SELECT Min(distance) AS Expr1
FROM [Freq List], LicenceData
WHERE ((([LicenceData].class_stat) Like 'F*') And (([LicenceData].type_lc)="A") And (([LicenceData].frequency) Between FirstOfFrequencyMHz-0.0249 And FirstOfFrequencyMHz+0.0249))) as COFX,

(SELECT Min(distance) AS Expr1
FROM [Freq List], LicenceData
WHERE ((([LicenceData].class_stat) Like 'M*') And (([LicenceData].type_lc)="A") And (([LicenceData].frequency) Between FirstOfFrequencyMHz-0.0249 And FirstOfFrequencyMHz+0.0249))) as COMO

FROM [Freq List]

My posted combined query attempt does not return the correct values, all cells for the CoFX and CoMO columns have the same number in them. 我发布的合并查询尝试未返回正确的值,CoFX和CoMO列的所有单元格中的编号均相同。

The two queries work independently I just need to know how to combine them (there are 4 total queries I need to combine that are similar to the first 2 posted queries) or it it is even possible to combine them. 这两个查询是独立工作的,我只需要知道如何组合它们(我需要组合总共4个查询,这与前两个发布的查询相似),或者甚至可以将它们组合在一起。

This may be the best way, as there is no direct link between the tables, you need to use sub-selects in order to ensure they are referenced correctly: 这可能是最好的方法,因为表之间没有直接链接,因此需要使用子选择来确保正确引用它们:

SELECT DISTINCT F.FirstOfFrequencyMHz,
(
SELECT Min(L.Distance)
FROM LicenceData As L
WHERE L.Class_Stat Like 'F*'
AND L.Type_LC = 'A'
AND L.Frequency Between F.FirstOfFrequencyMHz-0.0249 And F.FirstOfFrequency+0.0249
) CoFX,
(
SELECT Min(L2.Distance)
FROM LicenceData As L2
WHERE L2.Class_Stat Like 'M*'
AND L2.Type_LC = 'A'
AND L2.Frequency Between F.FirstOfFrequencyMHz-0.0249 And F.FirstOfFrequency+0.0249
) CoMO
FROM [Freq List] As F

Best of luck : ) 祝你好运:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM