ホームページ バックエンド開発 PHPチュートリアル 頻繁に使用されるクロス集計の問題では、通常、動的 SQL を使用して動的列を生成できます。 _PHP チュートリアル

頻繁に使用されるクロス集計の問題では、通常、動的 SQL を使用して動的列を生成できます。 _PHP チュートリアル

Jul 13, 2016 pm 05:00 PM
c class sql 動的 フォーマット 生成する できる 表面 質問

元のテーブルは次のとおりです。 lClass calldate callcount
1 2005-8-8 40
1 2005-8-7 6
2 2005-8-8 77
3 2005-8-9 33
3
-8-8 9
3 2005-8-7 21
Classの値に従って、CallCount1、CallCount2、CallCount3を日付ごとにカウントします。
この日付のレコードがない場合、値は0です
次の形式にマージする必要があります:
CallDate CallCount1 CallCount2 CallCount3
2005-8-9 0 0 33
2005-8-8 40 77 9
2005- 8 -7 6 0 21
--テスト環境を作成
テーブルT(Class varchar(2),CallDate datetime, CallCount int)を作成
T select '1','2005-8-8',40
unionに挿入すべて選択 '1'、'2005 -8-7'、6
結合 すべて選択 '2'、'2005-8-8'、77
結合 すべて選択 '3'、'2005-8-9'、33
Union all select '3',' 2005-8-8',9
union all select '3','2005-8-7',21
--動的 SQL
declare @s varchar(8000)
set @s ='select CallDate '
select @ s=@s ',[CallCount' Class ']=sum(case when Class=''' Class ''' then CallCount else 0 end)'
from T
クラスごとにグループ化
set @s=@s ' from T group by CallDate order by CallDate desc '
exec(@s)
--result
CallDate CallCount1 CallCount2 CallCount3
------------------ -------- ---------------------------- ---------- ---- ------ -----------
2005-08-09 00:00:00.000 0 0 33
2005-08-08 00:00:00.000 40 77 9
2005-08- 07 00:00:00.000 6 0 21
--テスト環境を削除
テーブル T を削除


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631231.html技術記事元のテーブルの形式は次のとおりです。 Class CallDate CallCount 1 2005-8-8 40 1 2005-8-7 6 2 2005-8-8 77 3 2005-8-9 33 3 2005-8-8 9 3 2005-8 -7 21 Class の値に従って、CallC が日付によって計算されます...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Apr 17, 2024 pm 02:57 PM

Hibernate フレームワークにおける HQL と SQL の違いは何ですか?

VirtualBox 固定ディスクをダイナミック ディスクに、またはその逆に変換します VirtualBox 固定ディスクをダイナミック ディスクに、またはその逆に変換します Mar 25, 2024 am 09:36 AM

VirtualBox 固定ディスクをダイナミック ディスクに、またはその逆に変換します

Oracle SQLでの除算演算の使用法 Oracle SQLでの除算演算の使用法 Mar 10, 2024 pm 03:06 PM

Oracle SQLでの除算演算の使用法

Oracle と DB2 の SQL 構文の比較と相違点 Oracle と DB2 の SQL 構文の比較と相違点 Mar 11, 2024 pm 12:09 PM

Oracle と DB2 の SQL 構文の比較と相違点

VSCode および VS C++ IntelliSense が機能しない、またはライブラリを選択しない VSCode および VS C++ IntelliSense が機能しない、またはライブラリを選択しない Feb 29, 2024 pm 01:28 PM

VSCode および VS C++ IntelliSense が機能しない、またはライブラリを選択しない

MyBatis動的SQLタグのSetタグ機能の詳細説明 MyBatis動的SQLタグのSetタグ機能の詳細説明 Feb 26, 2024 pm 07:48 PM

MyBatis動的SQLタグのSetタグ機能の詳細説明

SQL の 5120 エラーを解決する方法 SQL の 5120 エラーを解決する方法 Mar 06, 2024 pm 04:33 PM

SQL の 5120 エラーを解決する方法

Xboxエラーコード8C230002を修正 Xboxエラーコード8C230002を修正 Feb 27, 2024 pm 03:55 PM

Xboxエラーコード8C230002を修正

See all articles