1
날짜별로 그룹화 된 주문에 대한 데이터베이스 정보를 가져 오려고합니다. sales_flat_order 테이블이 있습니다. id, 주문 생성 날짜, 주문에 대한 total_paid 및 주문 항목 수를 가지고 있습니다. 그리고 나는 sales_flat_order_item이라는 테이블을 가지고 있습니다. select in select - 파생 테이블마다 고유 한 별칭 오류가 있어야합니다.
나는 하루 주문 정보를 얻기 위해 스크립트를 생성 :DATE SALES ITEMS
2013-03-05 72 3
2013-03-06 100 5
그리고 중간 가격 계산 스크립트가 :
SELECT
DATE(sales_flat_order.created_at) AS date,
SUM(sales_flat_order.total_paid) AS sales,
SUM(sales_flat_order.total_item_count) AS items
FROM
sales_flat_order,
sales_flat_order_payment
WHERE
sales_flat_order.status = 'complete'
AND sales_flat_order.entity_id = sales_flat_order_payment.parent_id
AND sales_flat_order_payment.method = 'checkmo'
GROUP BY DATE(sales_flat_order.created_at)
WITH ROLLUP
내가 얻을 지금은 '
SELECT
avg(t1.price) as median_val
FROM
(
SELECT
@rownum:[email protected]+1 as `row_number`,
d.price
FROM
sales_flat_order_item d,
(SELECT @rownum:=0) r
WHERE 1
ORDER BY d.price
) as t1,
(
SELECT
count(*) as total_rows
FROM
sales_flat_order_item d
WHERE 1
) as t2
WHERE 1
AND t1.row_number>=total_rows/2
and t1.row_number<=total_rows/2+1;
을 이 두 스크립트를 결합하여 다음을 얻으려고합니다.
DATE SALES ITEMS median_item_price
2013-03-05 72 3 19
2013-03-06 100 5 10.5
결합 된 스크립트를
SELECT
DATE(sales_flat_order.created_at) AS date,
SUM(sales_flat_order.total_paid) AS sales,
SUM(sales_flat_order.total_item_count) AS items,
sales_flat_order_item.price as median_item_price
FROM
sales_flat_order,
sales_flat_order_payment,
(
SELECT
avg(t1.price) as median_val
FROM
(
SELECT
@rownum:[email protected]+1 as `row_number`,
d.price
FROM
sales_flat_order_item d,
(SELECT @rownum:=0) r
WHERE 1
ORDER BY d.price
) as t1,
(
SELECT
count(*) as total_rows
FROM
sales_flat_order_item d
WHERE 1
) as t2
WHERE 1
AND t1.row_number>=total_rows/2
and t1.row_number<=total_rows/2+1
) as sales_flat_order_item
WHERE
sales_flat_order.status = 'complete'
AND sales_flat_order.entity_id = sales_flat_order_payment.parent_id
AND sales_flat_order_payment.method = 'checkmo'
AND DATE(sales_flat_order_item.created_at) = DATE(sales_flat_order.created_at)
GROUP BY DATE(sales_flat_order.created_at)
WITH ROLLUP
얻을 오류 : - : http://sqlfiddle.com/#!2/7dfec
누군가가 도와 드릴까요 # 1248은 모든 파생 테이블은 자신의 별명 여기
데이터베이스입니다
있어야합니다?
? 귀하의 피들에 대한 쿼리를 재생할 때 알 수없는 열 'sales_flat_order_item.price'가 'field list'... '!'!?! – Strawberry
그래, 전체 쿼리가 올바르지 않습니다 – Sergio
@Strawberry, sqlfeedle에서 같은 오류가 발생합니다. FROM sales_flat_order, sales_flat_order_payment를 작성하면 sales_flat_order_item 오류가 사라집니다. phpmyadmin에서 그런 오류가 아니 었습니다. – Alex