MySQL數據庫中如何解決分組統計的問題

首先准備四張表A、B、C、D,

--------------------------------

A |B |C |D

a b | a c | a d | d e

1 1 | 1 1 | 1 A | A 1

2 2 | 1 3 | 2 B | B 2

3 4 | 1 4 | 3 C | C 3

4 6 | 2 1 | 4 D | D 4

--------------------------------

下面我們需要用一條sql語句將A表所有的列,B表對與A表a字段相關聯的列求count,通過C表,將D表與A表關聯起來,得到的結果如下:

1 1 3 1

2 2 1 2

3 4 0 3

4 6 0 4

Mysql語句解決:

select A.a,A.b,IFNULL(c,0) as c,D.a

from (select 1 as a,2 as b union all

select 2 as a,2 as b union all

select 3 as a,4 as b union all

select 4 as a,6 as b) as A

left outer join

(select a,count(a) as c from(

select 1 as a,3 as c union all

select 1 as a,3 as c union all

select 1 as a,3 as c union all

select 2 as a,3 as c ) B group by a) as B

on A.a=B.a

join

(select 1 as a,'A' as d union all

select 2 as a,'B' as d union all

select 3 as a,'C' as d union all

select 4 as a,'D' as d ) as C

on A.a=C.a

join(select 1 as a,'A' as d union all

select 2 as a,'B' as d union all

select 3 as a,'C' as d union all

select 4 as a,'D' as d ) as D

on D.d=C.d

 
使用用VB處理MYSQL數據庫中二進制數據問題
'XP Professional SP2 + VB6.0 + MYSQL5.0 + MySql ODBC 3.51' 使用ADO 將ACCESS數據庫中的表導入到MYSQL數據庫中 Dim AdoRst As New ADODB.Recordset 'MySql 數據庫的ST表 Dim Adoact As New ADODB....查看完整版>>使用用VB處理MYSQL數據庫中二進制數據問題
 
MySQL數據庫中使用GRANT語句增添新用戶
這篇論壇文章(賽迪網技術社區)詳細的介紹了在MySQL中使用GRANT語句增添新用戶的具體步驟,更多內容請參考下文…… 下面的例子顯示如何使用MySQL客戶安裝新用戶。這些例子假定權限已缺省被安裝。這意味著爲了改變,...查看完整版>>MySQL數據庫中使用GRANT語句增添新用戶
 
MySQL數據庫中Show命令的用法
MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中對show命令的使用還容易産生混淆,本文主要介紹了show命令的主要用法。 a. show tables或show tables from database_name; -- 顯示當前數據庫中所有表...查看完整版>>MySQL數據庫中Show命令的用法
 
ORACLE數據庫中SQL*NET常見問題解決
  1 TNS-12154 Error 或ORA-12154    特征:SQL*NET沒有找到連接串或別名    原因1:(1)沒有找到TNSNAMES.ORA文件,該文件的缺省路徑爲:    Windows 95/98 client   ...查看完整版>>ORACLE數據庫中SQL*NET常見問題解決
 
ORACLE數據庫中SQL*NET常見問題解決
  1  TNS-12154 Error 或ORA-12154  特征:SQL*NET沒有找到連接串或別名  原因1:(1)沒有找到TNSNAMES.ORA文件,該文件的缺省路徑爲:  Windows 95/98 client  SQL*Net 2.x - ORAWIN95NETWORKADMIN  ...查看完整版>>ORACLE數據庫中SQL*NET常見問題解決