0

このクエリについて助けが必要です

これは私のクエリの実際の結果です

price received   qty recieved    price release  qty release     
  10.30              10                0             0                
   0                  0              10.30           2  
   0                  0              10.30           1
  19.20              20               0              0
   0                  0              19.20           5                      
   0                  0              19.20           3                
   0                  0              19.20           1                

クエリでこのコードを使用する

$result = mysql_query("SELECT *, 
     SUM(CASE WHEN qtyreceived > 0 THEN qtyreceived END) AS qtyrec,
     SUM(CASE WHEN  qtyrelease > 0 THEN qtyrelease END) AS qtyrel 
     FROM stockledger 
     WHERE stockdesc= '$_POST[desc]' GROUP BY pricerelease,pricereceived ");    

結果は

受領価格 受領価格 リリース数量 リリース bal 10.30 10 10 19.20 20 20 10.30 3 -3 19.20 9 -9

この方法で結果を表示したいので、2 つの価格の残りの数を取得できます

 price received       qtyreceived    price release  qtyrelease    bal
         10.30            10              10.30           3        7
         19.20            20              19.20           9        11

ありがとう.....;

4

1 に答える 1

1

あなたのデータを見ると、それは価格に基づいていると思います。右?これを試してください。

SELECT  a.PriceReceived,
        a.qtyreceived,
        b.priceRelease,
        b.qtyRelease,
        (a.bal + b.bal) as bal
FROM    stockledger a 
            INNER JOIN stockledger b
                ON a.priceReceived = b.priceRelease

または別の代替手段は

SELECT  a.PriceReceived,
        a.qtyreceived,
        b.priceRelease,
        b.qtyRelease,
        (a.qtyreceived - b.qtyRelease) as bal
FROM    stockledger a 
            INNER JOIN stockledger b
                ON a.priceReceived = b.priceRelease

SQLFiddle デモ

于 2012-08-07T05:56:34.210 に答える