我有一张桌子“BIRTH_ENTRY”& “DEATH_ENTRY”。两者都包含ENTRY_DATE,SEX_ID字段。
SEX_ID = 1 (MALE) & SEX_ID = 2 (FEMALE)
我想算出男性,女性和女性的数量。出生和完成的总(男/女)参赛作品死亡集团&每月订购(入境时间)
e.g。
|Month|Born_Male|Born_Female|Total_Born|Died_Male|Died_Female|Total_Died|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
我使用过这个SQL:
SELECT
(*Query to select born Male*),
(*Query to select born Female*),
(*Query to select total born*),
(*Query to select died Male*),
(*Query to select died Female*),
(*Query to select total died*)
SELECT
(SELECT COUNT(SEX_ID) AS Expr1
FROM BIRTH_ENTRY
WHERE MONTH(ENTRY_DATE) = 1 AND (SEX_ID = 1)
GROUP BY MONTH(ENTRY_DATE)) AS Birth_Male_Count,
(SELECT COUNT(SEX_ID) AS Expr1
FROM BIRTH_ENTRY AS BIRTH_ENTRY_1
WHERE MONTH(ENTRY_DATE) = 1 AND (SEX_ID = 2)
GROUP BY MONTH(ENTRY_DATE)) AS Birth_Female_Count,
(SELECT COUNT(SEX_ID) AS Expr1
FROM BIRTH_ENTRY AS BIRTH_ENTRY_2
WHERE MONTH(ENTRY_DATE) = 1
GROUP BY MONTH(ENTRY_DATE)) AS Birth_Total_Count,
(SELECT COUNT(SEX_ID) AS Expr1
FROM DEATH_ENTRY
WHERE MONTH(ENTRY_DATE) = 1 AND (SEX_ID = 1)
GROUP BY MONTH(ENTRY_DATE)) AS Death_Male_Count,
(SELECT COUNT(SEX_ID) AS Expr1
FROM DEATH_ENTRY AS DEATH_ENTRY_1
WHERE MONTH(ENTRY_DATE) = 1 AND (SEX_ID = 2)
GROUP BY MONTH(ENTRY_DATE)) AS Death_Female_Count,
(SELECT COUNT(SEX_ID) AS Expr1
FROM DEATH_ENTRY AS DEATH_ENTRY_2
WHERE MONTH(ENTRY_DATE) = 1
GROUP BY MONTH(ENTRY_DATE)) AS Death_Total_Count
但是如您所知,此查询将只返回一行。所以,我要在12个月内写12次。嗯,这还不够好。
所以,请帮助我。
提前致谢!
答案 0 :(得分:1)
我使用非常小的数据池来使用此查询。您必须对其进行测试,看它是否完全符合您的要求。
我使用的表格式......
$(document).ready(function(){
/*
Ця змінна потрібна для перевірки, щоб гарно перевідкривати панель,
коли користувач переходить на ыншу категорыю при выдкритій панелі.
*/
var previousCategoryClicked = '';
var previousGlyphArrow = '';
var previousCategoryButton = '';
/*
Функція, яка керує панелькою меню та контентом в ній
*/
$('.showMenuCover').click(function(){
// Виносимо дані з атрибутів тегу в окремі змінні, так простіше в подальшому
var parentCategory = $(this).attr('parentCategory');
var parentCategoryButton = '.parentCat'+parentCategory;
var CategoryID = $(this).attr('category');
var glyphArrow = '#subCategoryGlyph'+CategoryID;
var categoryButton = '#categoryButton'+CategoryID;
// Обчислення висоти елемента li для виставлення адекватних відступів гліфові
var buttonHeight = $(categoryButton).height();
if(buttonHeight > 10) {
var marginGlyph = buttonHeight / 2 - 7;
}
else {
var marginGlyph = buttonHeight / 2 - 2;
}
/*
Далі перевіряємо чи відкрита панель з меню.
Якщо відкрита, то просто ховаємо її, якщо закрита то відкриваємо її і втягуємо контент через AJAX.
Перед цим виконуємо додаткову перевірку за допомогою змінної previousCategoryClicked.
За допомогою неї перевіряємо чи є панель відкрита, якщо користувач клікнув на іншу категорію.
*/
if(previousCategoryClicked != CategoryID && $('.menu-cover').css('display') == 'block') {
$('.menu-cover').fadeOut('fast');
$(previousGlyphArrow).fadeOut('fast');
$(previousCategoryButton).css('background-color', 'inherit');
$('.menu-cover').fadeIn('fast');
$(glyphArrow).fadeIn('fast');
$(glyphArrow).css('margin-top', marginGlyph);
$(categoryButton).css('background-color', 'white');
}
else {
if ($('.menu-cover').css('display') == 'none') {
$('.menu-cover').fadeIn();
$(glyphArrow).fadeIn();
$(glyphArrow).css('margin-top', marginGlyph);
$(categoryButton).css('background-color', 'white');
}
else {
$('.menu-cover').fadeOut();
$(glyphArrow).fadeOut();
$(categoryButton).css('background-color', 'inherit');
}
}
previousCategoryClicked = CategoryID;
previousGlyphArrow = glyphArrow;
previousCategoryButton = categoryButton;
});
});
每月显示一次(无论是否有任何内容)。它还会显示您想要的所有信息。