ホーム
Top.Mail.Ru Yandeks.Metrika
フォーラム: "Bases";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];

ダウン

要求の準備およびQReportでのその出力に関する問題 似ている枝を探す


Andrey Pogorelov   (2001-12-02 10:49) [0]

Имеется 3 таблицы
Table1 Реестр животных
id
VID
カテゴリ
--------------
id vid categoria
1、1、2
2、1、2
3、2、1
--------------
Table2 Виды животных
id

--------------
1, Собаки
2, Кошки
--------------
Table3 - Категории животых
id

--------------
1, Домашнее
2, Бездомное
--------------
Необходимо подсчитать кол-во животных в базе, кол-во домашних и бездомных по видам и результаты поместить в QReport
те получить в виде
Вид Домашнее Бездомное
Собаки 0 2
Кошки 1 0
合計:3
Помогите очень надо, заранее Огромное спасибо.



asafr   (2001-12-03 15:14) [1]

Берешь TQuery, обзываешь, например qr_Work. Пишешь запрос:
SELECT VID, CATHEGORY, COUNT(*) AS SUM_ FROM TABLE1
GROUP BY VID, CATHEGORY
- этот qr_Work объявляешь источником для QReport. Результат запроса:
VID CATHEGORY SUM_
1 2 2
2 1 1

В QReport in DetailBand делаешь так:
----------------------------------------
<--DetailHeader
VID Cathegory Sum_
----------------------------------------
<-- Detail Band
[QRLabel1] [QRLabel2] [QRDBText1]
----------------------------------------
QRDBText1 - связываешь с полем Sum_

В Events QRLabel1 пишешь:
procedure TForm1.QRLabel1Print(sender: TObject; var Value: String);
begin
if qr_Work.FirldByName("vid").AsInteger=1 then QRLabel1.Caption:="Собаки"
else QRLabel1.Caption:="Кошки"
end;


従って
procedure TForm1.QRLabel2Print(sender: TObject; var Value: String);
begin
if qr_Work.FirldByName("cathegory").AsInteger=1
then QRLabel2.Caption:="Домашнее"
else QRLabel2.Caption:="Бездомное"
end;



Ну а ВСЕГО: - можно найти несколькими путями. Либо используй QRExpr, либо на QRDBText1Print приплюсовывай значения Sum_ каждой строчки. Только перед печатью не забывай делать Sum_:=0 - ибо тогда значения каждой распечатки будут приплюсовываться друг к другу.




Dick Gonsales   (2001-12-04 03:14) [2]

リクエスト
/* Тут в зависимости как хочешь чтобы выглядло*/
/* Вариант 1 */
SELECT T3.name, T2.name, count(T1.*)
FROM T3, T2, T1
WHERE T3.id=T1.categoria and T2.id=T1.vid
GROUP BY T3.name, T2.name
連合
SELECT T3.name, " Итого", count(T1.*)
/* пробел дабы правильно сработал order by*/
FROM T3, T1
WHERE T3.id=T1.categoria
GROUP BY T3.name
ORDER BY T3.name
/* Категория1 Вид1 кол-во */
/* Категория1 Вид2 кол-во */
/* Категория1 Итого кол-во */
/* Категория2 Вид1 кол-во */
/* Категория1 Вид2 кол-во */
/* Категория1 Итого кол-во */

/* Вариант 2 */
SELECT T2.name, T3.name, count(T1.*)
FROM T3, T2, T1
WHERE T3.id=T1.categoria and T2.id=T1.vid
GROUP BY T2.name, T3.name
連合
SELECT T2.name, " Итого", count(T1.*)
FROM T2, T1
WHERE T2.id=T1.vid
GROUP BY T2.name
ORDER BY T2.name
/* Вид1 Категория1 кол-во */
/* Вид1 Категория2 кол-во */
/* Вид1 Итого кол-во */
/* Вид2 Категория1 кол-во */
/* Вид2 Категория2 кол-во */
/* Вид2 Итого кол-во */



Запрос вешаешь на Report, и расписываешь поля,
а в принципе можешь воспользоваться
дельфийским мастером для генерации Report
используя выше описаный SELECT и он тебе все сделает.

Вариант который предложил asafr можно использовать
если у тебя мало категорий и видов и они не будут изменяться,
т.к. они жестко прописанны в коде. Тут это не важно.



ページ: 1 全枝

フォーラム: "Bases";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];

2階









メモリ:0.82 MB
時間:0.023 c
1-22098
アレクサンダー
2001-12-19 14:58
2002.01.08
誰がどのようにIPアドレスのIPエディタまたはどのコンポーネントを引き出すかを知っていますか?


1-22136
ドリクセ
2001-12-20 09:40
2002.01.08
Proekt


1-22145
マルコデン
2001-12-15 17:42
2002.01.08
カスタムボタン


1-22071
KAA
2001-12-19 10:48
2002.01.08
2つのサービスが互いに干渉します。


14-22319
IEA
2001-11-02 13:34
2002.01.08
(l)メガネをかけているすべての人に! 質問はアイドルではありません





アフリカーンス語 アルバニア語 Arabic アルメニア語 アゼルバイジャン語 バスク ベラルーシ Bulgarian カタロニア語 中国語(簡体字) 中国語(繁体字) クロアチア チェコ語 デンマーク語 Dutch 英語 エストニア語 タガログ語 Finnish フランス語
ガリシア語 ジョージアン ドイツ語 ギリシャ語 ハイチ語 ヘブライ語 ヒンディー語 ハンガリー語 アイスランド語 Indonesian アイリッシュ イタリア語 日本語 Korean ラトビア語 リトアニア マケドニア語 Malay マルタ語 Norwegian
ペルシア語 ポリッシュ ポルトガル語 ルーマニア Russian セルビア Slovak スロベニア語 スペイン語 スワヒリ語 Swedish Thai トルコ語 ウクライナ語 ウルドゥー語 ベトナム語 ウェールズ語 イディッシュ語 ベンガル語 ボスニア語
セブアノ語 エスペラント グジャラート語 ハウサ語 モン族 イボ ジャワ語 カンナダ語 クメール語 ラオ語 ラテン マオリ語 マラーティー語 モンゴル語 ネパール語 パンジャブ語 ソマリ タミル語 テルグ語 ヨルバ語
ズールー語
Английский Французский Немецкий Итальянский ポルトガル語 Русский Испанский