-1

給料日

  id   day    employee    income    expenses    tax
   1    7        3         600        100       30
   2    14       3         650        150       35
   3    14       2         680        200       38


SELECT p.income, p.tax, ps.expenses
FROM paydays p
LEFT JOIN paydays ps ON ps.day+7 = p.day
WHERE p.day = 14 AND p.employee = 3

これにより、14日目の行から650の収入と35の税金が得られ、
7日目の行から100の費用が得られます

今問題、

SELECT SUM(p.income), SUM(p.tax), SUM(ps.expenses)
FROM paydays p
LEFT JOIN paydays ps ON ps.day+7 = p.day
WHERE p.day = 14

それは与えるべきです

income = 1330  
tax = 73  
expenses = 100

ただし、フィールドを2倍します。income = 2660, tax = 146.....

4

2 に答える 2

0
SELECT 
    SUM(payday.income) as Income , 
    SUM(payday.tax) as Tax,  
    p.expenses as Expanses
FROM payday
LEFT JOIN payday as p ON p.id = payday.id - 1
WHERE day = 14
于 2013-01-03T09:33:58.763 に答える
0

多分私はあなたの説明に何かが欠けているかもしれませんが、サブクエリを使用して を取得することはできませんかexpenses?

SELECT SUM(p.income) TotalIncome, 
  SUM(p.tax) TotalTax, 
  ps.expenses Expenses
FROM paydays p
INNER JOIN
(
  select sum(expenses) expenses, day
  from paydays
  where day = 7
  group by day
) ps 
  ON ps.day+7 = p.day
WHERE p.day = 14
GROUP BY ps.expenses

デモで SQL Fiddle を参照してください

結果は次のとおりです。

| TOTALINCOME | TOTALTAX | EXPENSES |
-------------------------------------
|        1330 |       73 |      100 |
于 2013-01-03T10:30:35.670 に答える