0
$pdf->Table('select @N:=@N+1 AS no,
                    A.department as "DEPARTMENT", 
                    A.no as "ASSET NUMBER" , 
                    A.total as "ASSET TOTAL PRICE" , 
                    B.no as "INVENTORY NUMBER" ,  
                    B.total as "INVENTORY TOTAL PRICE" 
                from 
                    (select  h.department , coalesce(count(h.id),0) as no,coalesce(sum(h.price),0) as total 
                        from asset h 
                        where h.department = "'.$department.'" 
                        and  year(h.date_accepted) = '.$year.' 
                        GROUP BY year(h.date_accepted)) as  A , 
                    (select coalesce(count(i.id),0) as no,coalesce(sum(i.price),0) as total 
                        from inventory i 
                        where i.department = "'.$department.'"
                        and  year(i.date_accepted) = '.$year.' 
                        GROUP BY year(i.date_accepted)) as B   ',$prop);

SQLから読み取るテーブルを生成するPDFファイルを作成しています。問題は、データベースの行が空の場合、他のテーブルにデータがあっても PDF テーブルが出力を生成しないことです。

たとえば、2009 年の場合、承認された資産のみがあり、在庫には何もありません。データベースの資産テーブルにデータがある場合でも、エコー時に生成されたテーブルは空です。

ISNULL、IFNULL、COALESCE のすべてを試して、sum()/count() の値を 0 に設定しました (生成されたテーブルが空である理由はこれだと思います) が、まだデータを生成できません。

COALESCE 関数が機能しないのはなぜですか? エイリアスの使用が原因ですか? 例: COALESCE(sum(i.price),0)) (i.variable のように)

4

1 に答える 1

0

dbテーブルの代わりにPHPコードを変更し、「」またはエコーの前に空の場合は何かを使用して自分でデータを確認して設定します。

于 2012-08-29T06:44:18.863 に答える