-1

次の請求書テーブルがあります

building      flatname   flatdescription   amount      pastpayments     receiptno
1234          name a     a                 123         0                0
1234          name a     a                 12          10               39
1234          name a     a                 125         125              40
1235          name a     a                 133         10               41
1235          name b     b                 125         125              50
1234          name c     c                 100         90               0

buildingcode 1234 で金額から支払いを差し引いた値が 0 より大きい行を選択し、同じ名前で領収書番号 > 0 がある場合はスタイル b で表示し、同じ名前で領収書番号 > 0 がない場合はスタイルなしで表示したい

したがって、私のコードの結果は次のようになります

         name a     39    with style B
         name c     0

これどうやってするの?

次のコードを使用しますが、スタイルのないすべての選択を受け取ります

            t.executeSql('SELECT receiptno AS mr, flatdescription, flatname, buildingcode FROM bill WHERE amount - pastpayments> 0 AND buildingcode = ? GROUP BY buildingcode, flatname ORDER BY flatdescription DESC',[buildingcode], function(t, resultflat) {


            var i,
                len = resultflat.rows.length,
                row;

            if (len > 0 ) {
                items.push('<br>');
                for (i = 0; i < len; i += 1) {
                    row = resultflat.rows.item(i);

                    if (row.mr > 0) {

                        items.push('<li data-theme="b" data-icon="false" style="height:40px; padding: 7px 0 0 0; font-size: 1.2em"><a href="#displayflat" data-flat="' + row.flatname + '" data-description="' + row.flatdescription + '">' + row.flatdescription + '...' + row.flatname + '</a></li>');

                        } else {
                        items.push('<li data-icon="false" style="height:40px; padding: 7px 0 0 0; font-size: 1.2em"><a href="#displayflat" data-flat="' + row.flatname + '" data-description="' + row.flatdescription + '">' + row.flatdescription + '...' + row.flatname + '</a></li>');

                        }
                }
            }
4

1 に答える 1

0

と を持つグループに複数のレコードがbuilding=1234ありflatname='name a'ます。言うだけで、これらのレコードのランダムなreceiptno1 つから値が得られます。

MAX(receiptno)おそらく、グループ内の最大値を取得するために使用したいと思うでしょう。これにより、グループ内にゼロ以外の値があるreceiptno場合に確実に取得できます。

于 2013-02-28T21:41:06.630 に答える