gpt4 book ai didi

c++ - 显示不同值的列数

转载 作者:行者123 更新时间:2023-11-28 07:29:05 25 4
gpt4 key购买 nike

大家好,来自 StackOverflow 的同事们!

我将简明扼要,切入正题:我在 MS Access 中有一个表,它包含 2 个感兴趣的列 - 县和 TGTE(地热能源类型)。列 TGTE 是 VARCHAR 类型,它可以有两个值之一,为了更容易,假设它是 L 或 H。

我需要创建 SQL 查询来显示如下所述的结果:

下面是表格的一部分:


County | TGTE | ... |   
First | L |
First | L |
First | H |
Second | H |
Third | L |
__________________

我需要一个结果查询来显示每个县的不同 TGTE 的数量,如下所示:


County | TGTE = L | TGTE = H |    
First | 2 | 1 |
Second | 0 | 1 |
Third | 1 | 0 |
__________________________________

如何创建显示上述所需结果的查询?


注意:我浏览了文件,发现了类似的东西,但没有任何帮助。老实说,我不知道如何正确地提出这个问题,所以我想这就是为什么 Google 帮不上什么忙的原因......

我试过这个:

    SELECT County, COUNT(TGTE) as [Something]
FROM MyTable
WHERE TGTE = "L"
GROUPBY COUNTY;

但这是我得到的结果:

County | TGTE = L |     
First | 2 |
Second | 0 |
Third | 1 |
__________________________________

如果我将 L 更改为 H,在上面的查询中,我得到:

County |  TGTE = H |   
First | 1 |
Second | 1 |
Third | 0 |
__________________________________

我在 Windows XP 上工作,使用 C++,使用 ADO Access MS Access 2007 数据库。如果还有什么我可以帮忙的,尽管提出来,我很乐意帮忙。

编辑#1:

在尝试了 Declan 的解决方案之后,这就是我得到的:

主表中的值:

|    County    | TGTE |

| Стари Град | H |

| Сурчин | L |

| Стари Град | H |

| Савски Венац | H |

| Раковица | H |

输出:

|    County    | TGTE = L | TGTE = H | 

| Раковица | 1 | 1 |

| Савски Венац | 1 | 0 |

| Сурчин | 1 | 0 |

| Стари Град | 1 | 0 |

它应该输出这个:

|    County    | TGTE = L | TGTE = H | 

| Раковица | 1 | 0 |

| Савски Венац | 1 | 0 |

| Сурчин | 0 | 1 |

| Стари Град | 2 | 0 |

编辑#2:

应 Declan 的要求,这是我使用的原始查询:

   wchar_t *query = L"select Општина, \
sum( iif( Тип_геотермалне_енергије =
'Хидрогеотермална енергија', 1, 0 ) ) as [HGTE], \
sum( iif( Тип_геотермалне_енергије =
'Литогеотермална енергија', 1, 0 ) ) as [LGTE] \
from Објекат \
group by Општина; ";

翻译成我们的例子,它看起来像这样:

   wchar_t *query = L"select County, \
sum( iif( TGTE = 'H', 1, 0 ) ) as [HGTE], \
sum( iif( TGTE = 'L', 1, 0 ) ) as [LGTE] \
from MyTable \
group by County; ";

编辑#3:

将上述查询复制到Access中运行后,一切正常,因此我认为问题出在ADO的使用上。

编辑#4:

通过Internet 浏览后,我确定问题出在ADO 上。我如何在 ADO 中使用 IIF() 以便我的查询可以工作?如果无法完成,那么如何修改 y 查询以执行我上面描述的操作?

最佳答案

您需要在另外两个列中使用 iif 函数。下面是一些帮助您入门的伪代码。

SELECT  County
,sum(iif(TGTE = "L",1,0)) as [L_Count]
,sum(iif(TGTE = "H",1,0)) as [H_Count]
FROM MyTable
GROUP BY
COUNTY;

关于c++ - 显示不同值的列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18067726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com