我有一个简单的表格,我必须从中做一个选择,但它必须是这样的:
表格示例
StatusID StatusCode BrandID StatusName
1 1 1000 First Status
2 2 1000 Second Status
3 3 1000 Third Status
4 1 2000 First Custom Status
我需要一个选择查询,其中BrandID = 1000输出:
StatusID StatusCode BrandID StatusName
1 1 1000 First Status
2 2 1000 Second Status
3 3 1000 Third Status
我需要一个选择查询,其中BrandID = 2000输出:
StatusID StatusCode BrandID StatusName
4 1 2000 First Custom Status
2 2 1000 Second Status
3 3 1000 Third Status
换句话说,如果BrandID是默认值(1000),我需要选择属于此BrandID的所有行,但是如果BrandID是2000,我需要选择属于此BrandID +行的所有行,如果没有BrandID,则使用默认BrandID 2000年为那个特定的StatusCode。 我希望这是足够好的解释。这是我一直在努力的问题
SELECT *
FROM table
GROUP BY StatusCode
HAVING BrandID = 2000
显然它不能按预期工作。
答案 0 :(得分:1)
试试这个:
SELECT *
FROM (SELECT * FROM statusTable
GROUP BY StatusCode HAVING StatusCode NOT IN (SELECT StatusCode FROM statusTable WHERE BrandID = 2000)
UNION
SELECT * FROM statusTable WHERE BrandID = 2000
) AS A
ORDER BY StatusCode
答案 1 :(得分:0)
这是查询
从表中选择*,其中brandId = 1000 联盟 select * from table where brandid = 2000
这将打印属于这两个标准的所有记录。