私のpython3スクリプトはMySQLと同じ結果を生成していません。私のクエリは、その週に値が変化した行を返します。Python3スクリプトが同じクエリのMySQLエンジンと同じ結果を表示しない
Pythonスクリプト:
query = "SELECT cw.opportunityid, cw.probability, pw.probability, cw.stage, pw.stage, cw.amount, pw.amount, " \
"cw.closedate, pw.closedate " \
"FROM opty_data cw " \
"LEFT JOIN opty_data pw ON cw.opportunityid = pw.opportunityid " \
"AND pw.Week = \"{0}\" " \
"WHERE cw.Week = \"{1}\" " \
"AND IF(pw.opportunityid IS NULL, TRUE, ((cw.probability <> pw.probability) OR (cw.stage <> pw.stage) " \
"OR (cw.Amount<>pw.Amount) OR (cw.CloseDate <> pw.CloseDate)))".format(Prev_Week,Curr_Week)
cursor.execute(query)
results = dictfetchall(cursor)
print(results)
出力:
[{
'opportunityid' : '1',
'probability' : '50',
'amount' : Decimal('30.35'),
'closedate' : datetime.date(2016, 8, 22),
'stage' : 'Proposal'
}, {
'opportunityid' : '2',
'probability' : '50',
'amount' : Decimal('115.00'),
'closedate' : datetime.date(2016, 6, 30),
'stage' : 'Proposal'
}, {
'opportunityid' : '3',
'probability' : '50',
'amount' : Decimal('200.00'),
'closedate' : datetime.date(2016, 8, 29),
'stage' : 'Proposal'
}
]
クエリ:MySQLが正しく表示
SELECT cw.opportunityid, cw.probability, pw.probability, cw.stage, pw.stage, cw.amount, pw.amount, cw.closedate, pw.closedate FROM opty_data cw
LEFT JOIN opty_data pw
ON cw.opportunityid = pw.opportunityid AND pw.Week = "2016-35" WHERE cw.Week = "2016-36"
AND IF(pw.opportunityid IS NULL, TRUE, ((cw.probability <> pw.probability) OR (cw.stage <> pw.stage) OR (cw.Amount<>pw.Amount) OR (cw.CloseDate <> pw.CloseDate)))
予想される出力:
+-----------------+-------------+-------------+----------------+----------------
+------------+-------------+------------+------------+
| opportunityid | probability | probability | stage | stage
| amount | amount | closedate | closedate |
+-----------------+-------------+-------------+----------------+----------------
+------------+-------------+------------+------------+
| 1 | 50 | 50 | Proposal | Proposal
| 20.35 | 30.35 | 2016-08-22 | 2016-08-22 |
| 2 | 50 | 50 | Proposal | Proposal
| 113.00 | 115.00 | 2016-09-06 | 2016-06-30 |
| 3 | 0 | 50 | Drop | Proposal
| 200.00 | 200.00 | 2016-08-29 | 2016-08-29 |
実行したSQLクエリを投稿できますか? – MooingRawr
データは同じです。ただ、pythonは結果をpython辞書として返します。必要に応じてフォーマットする必要があります。 –
@MooingRawr:元の投稿にクエリを追加しました。 – r0xette