0

私は熱心な Excel VBA ファンであり、非常に基本的な SQL ベースのソフトウェアに移行する必要があります。私は自分のニーズに既存のクエリを適応させることができました (まだ方法がわかりません!) が、それをさらに微調整するためにいくつかの助けを借りて行うことができます :)

クエリは次のとおりです。
PARAMETERS [Date From] DateTime, [Date To] DateTime, [Site Group] Text;

SELECT Contacts.Name, DataProfile.Date, DataProfile.TotalUnits

FROM (Lookup INNER JOIN Groups ON Lookup.Lookup_Id = Groups.Lookup_Id) INNER JOIN (Contacts INNER JOIN (Points INNER JOIN DataProfile ON Points.Id = DataProfile.Point_Id) ON Contacts.Id = Points.Contacts_Id) ON Groups.Link_Id = Contacts.Id

WHERE (((Lookup.Lookup_Name)=[Site Group]) AND ((DataProfile.Date) Between [Date From] And [Date To]) AND ((Points.Type)='Electricity') AND ((DataProfile.Type)=0))

AND Contacts.Group_1=[Client Group]

ORDER BY Contacts.Name, DataProfile.Date;

これにより、日ごとのサイトごとの 1 日の合計のリストが生成され、次のようになります。

サイト.......日付........値
サイト 1....01/01/13...444.7
サイト 1....02/01/13...861.5
サイト1....03/01/13...850.0
など...

クエリを次のように出力することは可能ですか:

サイト......01/01/13....02/01/13....03/01/13 サイト 1
....444.7.......861.5....... .... 850.0 サイト 2
....111.1.......222.2........333.3
など...

1 つのサイトに 1 つの行があると、非常に多くの行を作成するよりも、作業がずっと簡単になります。現時点では、データを適応させるために Excel をコーディングしていますが、長くて効率的ではありません。SQL をこの形式で出力できたら、私はある種のオフィスの神様のようになります !!!

ヘルプ/アドバイス/ガイドは大歓迎です:)

4

1 に答える 1

-1

実行している SQL のバージョンは何ですか? PIVOTは使えますか?

http://msdn.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

于 2013-04-25T19:47:02.283 に答える