我有一个有机构的桌子和一张有员工的桌子,每个员工都有一个外键,指向相应机构的主键。有男子机构,妇女机构和混合机构。
我正在尝试选择显示至少有2名女性的所有机构。我可以展示所有有妇女的机构,但我不能展示至少有2名妇女的机构。我使用idNumber
来选择女性,如下面的代码
select idInst,nameInst
from tblInst
WHERE idInst IN (SELECT idInst
FROM tblEmployees
WHERE idNr>=1999999999999);
这将显示所有妇女所在的机构,但不是所有至少有2名女性的机构。 我需要以某种方式为每个机构计算女性,但我不知道如何做到这一点。
答案 0 :(得分:0)
使用Having子句,您可以实现此目的:
#include <stdlib.h> /* for malloc() and EXIT_xxx macros */
#include <stdio.h> /* for perror() */
#include <string.h> /* for strchr() and strtok() */
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
int result = EXIT_SUCCESS;
char input[] = "Lorem ipsum dolor sit amet";
size_t words = 0;
{
char * pc = input;
while ((pc = strchr(pc, ' ')))
{
++pc;
if (!*pc && *pc != *(pc - 1)) /* Skip successive blanks. */
{
++words;
}
}
}
{
char ** ppc = malloc((words + 1) * sizeof *ppc);
if (NULL == ppc)
{
perror("malloc() failed");
exit(EXIT_FAILURE);
}
{
size_t i = 0;
ppc[i] = strtok(input, " ");
while (NULL != (ppc[++i] = strtok(NULL, " ")));
}
{
pid_t pid = fork();
if (-1 == pid)
{
perror("fork() failed");
exit(EXIT_FAILURE);
}
if (0 == pid)
{
execvp(ppc[0], ppc);
perror("execvp() failed");
result = EXIT_FAILURE;
}
}
free(ppc);
}
return result;
}