Avatar billede syswatch Novice
22. maj 2014 - 13:19 Der er 3 kommentarer og
1 løsning

Sortere ud med en ekstra WHERE

Hejsa,
Jeg har en Prestashop løsning, hvor jeg prøver at rette en rapport til som bruger denne kode:

$this->query = 'SELECT SQL_CALC_FOUND_ROWS p.reference, p.id_product, pl.name,
                ROUND(AVG(od.product_price / o.conversion_rate), 2) as avgPriceSold,
                IFNULL(stock.quantity, 0) as quantity,
                IFNULL(SUM(od.product_quantity), 0) AS totalQuantitySold,
                ROUND(IFNULL(IFNULL(SUM(od.product_quantity), 0) / (1 + LEAST(TO_DAYS('.$array_date_between[1].'), TO_DAYS(NOW())) - GREATEST(TO_DAYS('.$array_date_between[0].'), TO_DAYS(product_shop.date_add))), 0), 2) as averageQuantitySold,
                ROUND(IFNULL(SUM((od.product_price * od.product_quantity) / o.conversion_rate), 0), 2) AS totalPriceSold,
                (
                    SELECT IFNULL(SUM(pv.counter), 0)
                    FROM '._DB_PREFIX_.'page pa
                    LEFT JOIN '._DB_PREFIX_.'page_viewed pv ON pa.id_page = pv.id_page
                    LEFT JOIN '._DB_PREFIX_.'date_range dr ON pv.id_date_range = dr.id_date_range
                    WHERE pa.id_object = p.id_product AND pa.id_page_type = ('.(int)Page::getPageTypeByName('product').')
                    AND dr.time_start BETWEEN '.$date_between.'
                    AND dr.time_end BETWEEN '.$date_between.'
                ) AS totalPageViewed
                FROM '._DB_PREFIX_.'product p
                '.Shop::addSqlAssociation('product', 'p').'
                LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (p.id_product = pl.id_product AND pl.id_lang = '.(int)$this->getLang().Shop::addSqlRestrictionOnLang('pl').')
                LEFT JOIN '._DB_PREFIX_.'order_detail od ON od.product_id = p.id_product
                LEFT JOIN '._DB_PREFIX_.'orders o ON od.id_order = o.id_order
                '.Product::sqlStock('p', 0).'
                WHERE product_shop.active = 1
                    AND o.valid = 1
                   
                    AND o.invoice_date BETWEEN '.$date_between.'
                GROUP BY od.product_id';

Jeg ville gerne føje en ekstra WHERE sætning til koden, men kan ikke få det til at fungere.
Det drejer som om feltet "id_supplier" i tabellen PRODUCT, og har prøvet med dette: AND product.id_supplier = 3
men det virker ikke... hvordan skal det gøre ?
22. maj 2014 - 15:29 #1
Har du prøvet med 'AND p.id_supplier = 3
Avatar billede syswatch Novice
23. maj 2014 - 10:24 #2
Christian: Det var lige det der skulle til... smider du et svar så jeg kan lukke ?
23. maj 2014 - 23:32 #3
Jamen det var godt.  Så her er mit svar.
07. juni 2014 - 09:49 #4
syswatch, kom du fra det igen?  Du bad om, og fik, svar, men du har ikke accepteret det og lukket spoergsmaalet.  Hvis du har aendret mening, saa luk spoergsmaalet med eget svar.  Men lad mig venligst ikke blive haengende i det aabne spoergsmaal.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester