0

SQLクエリでエラーが発生しました。

私の質問:

SELECT sum(billsItems_Quantity) as TotalQ , 
    sum(billsItems_ItemDiscount) as TotalD , 
    sum(billsItems_ItemTotal) as TotalI , 
    bills.bills_ID , 
    billsitems.billsItems_BillItemSerial , 
    bills.bills_CashierID , 
    bills.bills_StoreID , 
    billsitems.billsItems_Unit , 
    billsitems.billsItems_Price 
FROM bills , billsitems 
WHERE bills.bills_ID = billsitems.billsItems_BillItemSerial
  and bills.bills_CashierID = '".$id."'
  and bills.bills_StoreID = '$ausers_StoreId'
order by billsitems.billsItems_Unit 

私のクエリではbillsItems_QuantitybillsItems_ItemDiscount billsItems_ItemTotalsum関数を使用して合計を取得する必要があります。同じクエリで、テーブルのすべてのアイテムを取得する必要があります。

エラー :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
4

3 に答える 3

0

わかりました、私はあなたの問題を理解していると思います。SQL Server 2005以降を使用していますか?

その場合は、「OVER」句を使用してこれを行うことができます。これにより、合計を実行し、他のすべての列を取得できます。これを行う方法は次のとおりです

SELECT sum(billsItems_Quantity) OVER (PARTITION BY /*group by columns for the sum here*/) as TotalQ , 
   sum (billsItems_ItemDiscount) OVER (PARTITION BY /*group by columns for the sum here*/) as TotalD , 
   sum (billsItems_ItemTotal) OVER (PARTITION BY /*group by columns for the sum here*/) as TotalI , 
   bills.bills_ID , billsitems.billsItems_BillItemSerial , bills.bills_CashierID , 
   bills.bills_StoreID , billsitems.billsItems_Unit , billsitems.billsItems_Price FROM bills , 
   billsitems 
WHERE bills.bills_ID = billsitems.billsItems_BillItemSerial
  and bills.bills_CashierID = '".$id."'
  and bills.bills_StoreID = '$ausers_StoreId'
order by billsitems.billsItems_Unit 
于 2012-12-18T16:00:53.033 に答える
0

多くの詳細を提供していませんが、のサブクエリを使用しsum()て、テーブルに結合し直すことができる場合があります。

SELECT i1.TotalQ , 
    i1.TotalD , 
    i1.TotalI , 
    b.bills_ID , 
    i2.billsItems_BillItemSerial , 
    b.bills_CashierID , 
    b.bills_StoreID , 
    i2.billsItems_Unit , 
    i2.billsItems_Price 
FROM bills b
INNER JOIN
(
    select sum(billsItems_Quantity) TotalQ,
        sum(billsItems_ItemDiscount) as TotalD,
        sum(billsItems_ItemTotal) as TotalI,
        billsItems_BillItemSerial
    from  billsitems
    group by billsItems_BillItemSerial
)  i1
    ON b.bills_ID = i1.billsItems_BillItemSerial
inner join billsitems i2
    on b.bills_ID = i2.billsItems_BillItemSerial
WHERE b.bills_CashierID = '".$id."'
  and b.bills_StoreID = '$ausers_StoreId'
order by i2.billsItems_Unit
于 2012-12-18T16:03:48.953 に答える
0

GROUP BYを追加しなかったためだと思います、試してみてください

    SELECT sum(billsItems_Quantity) as TotalQ , 
        sum(billsItems_ItemDiscount) as TotalD , 
        sum(billsItems_ItemTotal) as TotalI , 
        bills.bills_ID , 
        billsitems.billsItems_BillItemSerial , 
        bills.bills_CashierID , 
        bills.bills_StoreID , 
        billsitems.billsItems_Unit , 
        billsitems.billsItems_Price 
    FROM bills , billsitems 
    WHERE bills.bills_ID = billsitems.billsItems_BillItemSerial
      and bills.bills_CashierID = '".$id."'
      and bills.bills_StoreID = '$ausers_StoreId'

    GROUP BY bills.bills_ID , 
        billsitems.billsItems_BillItemSerial , 
        bills.bills_CashierID , 
        bills.bills_StoreID , 
        billsitems.billsItems_Unit , 
        billsitems.billsItems_Price

    ORDER BY billsitems.billsItems_Unit 
于 2012-12-18T16:02:56.987 に答える