我有两个问题,这几乎完全相同。
查询1:
SELECT
cman_code, cman_name
FROM
capder
JOIN
caprange ON capder.cder_rancode = caprange.cran_code
JOIN
capman ON caprange.cran_mantextcode = capman.cman_code
JOIN
capmod ON capder.cder_modcode = capmod.cmod_code
JOIN
nvdtechnical ON nvdtechnical.TECH_Id = capder.cder_ID
JOIN
nvddictionarytechnical ON nvddictionarytechnical.DT_TechCode = nvdtechnical.TECH_TechCode
JOIN
nvddictionarycategory ON nvddictionarycategory.DC_CatCode = nvddictionarytechnical.DT_CatCode
JOIN
nvdmodelyear ON capder.cder_ID = MY_Id
AND nvddictionarytechnical.DT_TechCode = 67
AND nvdtechnical.TECH_Value_Float < '100'
AND nvdtechnical.TECH_Value_Float != 0
AND cder_transmission = 'M'
AND cman_code IN ('1','140','164','836','869','1283','1333','1925','2193','2514','4256','4537','4721','4835','5088','5171','5182','5238','5261','5509','6058','6425','7104','7983','8083','8219','9909','10172','10251','10383','10519','10968','12243','12764','14786','15155','21223','22439','44394','47841')
AND (cmod_discontinued=0 OR cmod_discontinued=2015)
AND cder_discontinued = '0000-00-00 00:00:00'
GROUP BY
cman_code
ORDER BY
cman_name DESC查询2:
SELECT
cman_code, cman_name
FROM
capder
JOIN
caprange ON capder.cder_rancode = caprange.cran_code
JOIN
capman ON caprange.cran_mantextcode = capman.cman_code
JOIN
capmod ON capder.cder_modcode = capmod.cmod_code
JOIN
nvdtechnical ON nvdtechnical.TECH_Id = capder.cder_ID
JOIN
nvddictionarytechnical ON nvddictionarytechnical.DT_TechCode = nvdtechnical.TECH_TechCode
JOIN
nvddictionarycategory ON nvddictionarycategory.DC_CatCode = nvddictionarytechnical.DT_CatCode
JOIN
nvdmodelyear ON capder.cder_ID = MY_Id
WHERE
nvddictionarytechnical.DT_TechCode = 11
AND nvdtechnical.TECH_Value_Float < 25
AND nvdtechnical.TECH_Value_Float != 0
AND cder_transmission = 'M'
AND cman_code IN ('1','140','164','836','869','1283','1333','1925','2193','2514','4256','4537','4721','4835','5088','5171','5182','5238','5261','5509','6058','6425','7104','7983','8083','8219','9909','10172','10251','10383','10519','10968','12243','12764','14786','15155','21223','22439','44394','47841')
AND (cmod_discontinued=0 OR cmod_discontinued=2015)
AND cder_discontinued = '0000-00-00 00:00:00'
GROUP BY
cman_code
ORDER BY
cman_name DESC这两个查询都很完美,并产生了我想要的确切结果。
两者之间唯一的区别是nvddictionarytechnical.**DT_TechCode**和nvdtechnical.**TECH_Value_Float**中的值。
我很难把他们聚在一起。
- TECH_Value_Float -列包含CO2和MPG值.
我只需要把这些合并成一个查询。
使用此方法不起作用:
where
(
(
nvddictionarytechnical.DT_TechCode = 67
AND nvdtechnical.TECH_Value_Float < '100'
)
or
(
nvddictionarytechnical.DT_TechCode = 11
AND nvdtechnical.TECH_Value_Float < 25
)
) 所产生的结果,如:
|CO2 | MPG|
-----------
94 | 78 |
378 | 19 |我需要MPG和CO2都是真的。其结果如下:
|CO2 | MPG|
-----------
15 | 18 |
10 | 17 |专业人士有什么建议吗?我应该问两个问题吗?有没有人遇到过这样的问题?这很不寻常吗?
谢谢你的帮助。
发布于 2015-04-01 19:13:56
你试过:
where
(
(
nvddictionarytechnical.DT_TechCode = 67
AND nvdtechnical.TECH_Value_Float < '100'
)
or
(
nvddictionarytechnical.DT_TechCode = 11
AND nvdtechnical.TECH_Value_Float < 25
)
) 发布于 2015-04-01 19:15:40
那这个呢?
SELECT cman_code, cman_name
from capder
JOIN caprange ON capder.cder_rancode = caprange.cran_code
JOIN capman ON caprange.cran_mantextcode = capman.cman_code
JOIN capmod ON capder.cder_modcode = capmod.cmod_code
JOIN nvdtechnical ON nvdtechnical.TECH_Id = capder.cder_ID
JOIN nvddictionarytechnical ON nvddictionarytechnical.DT_TechCode = nvdtechnical.TECH_TechCode
JOIN nvddictionarycategory ON nvddictionarycategory.DC_CatCode = nvddictionarytechnical.DT_CatCode
JOIN nvdmodelyear ON capder.cder_ID = MY_Id
AND ((nvddictionarytechnical.DT_TechCode = 67
AND nvdtechnical.TECH_Value_Float < '100')
OR (nvddictionarytechnical.DT_TechCode = 11
AND nvdtechnical.TECH_Value_Float < 25 ))
AND nvdtechnical.TECH_Value_Float != 0
AND cder_transmission = 'M'
AND cman_code IN ('1','140','164','836','869','1283','1333','1925','2193','2514','4256','4537','4721','4835','5088','5171','5182','5238','5261','5509','6058','6425','7104','7983','8083','8219','9909','10172','10251','10383','10519','10968','12243','12764','14786','15155','21223','22439','44394','47841')
AND (cmod_discontinued=0 OR cmod_discontinued=2015)
AND cder_discontinued = '0000-00-00 00:00:00'
GROUP BY cman_code ORDER BY cman_name DESC这样你就可以检查这两种情况了!
https://stackoverflow.com/questions/29398837
复制相似问题