Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » DYD 19:43
 » MARtiuS 19:43
 » cVas 19:42
 » bajbusek 19:38
 » Artaa 19:33
 » Hitman 19:25
 » Sherif 19:20
 » m&m 19:18
 » jenot 19:10
 » Dexter 19:09
 » Fl@sh 19:09
 » rulezDC 19:05
 » Chrisu 18:59
 » kyusi 18:58
 » rzymo 18:53
 » Chavez 18:50
 » Kenny 18:49
 » GLI 18:46
 » krismel 18:45
 » Janusz 18:45

 Dzisiaj przeczytano
 41121 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

[MySQL] help , Deus ex machine 16/04/12 10:00
bo się zapętliłem i nie mogę wymyślić prostego sposobu. Potrzebuje wyciagnac cene minimalna PRC w zakresie grup NUM,LNG ale z waznym dowiazaniem ID

mam:
ID NUM LNG PRC CUR
332 100092 en 9000 EUR
420 100092 en 9000 EUR
508 100092 en 9000 EUR
596 100092 en 7200 EUR
1004 100092 es 9000 EUR
1092 100092 es 9000 EUR
1180 100092 es 9000 EUR
1268 100092 es 7457 EUR

i w wyniku mam dostac:
596 100092 en 7200 EUR
1268 100092 es 7457 EUR

to musi być jakieś proste rozwiazanie, ale kurde same komplikacje mi po głowie chodzą.

"Uti non Abuti"

  1. rozważałeś najprostsze rozwiązanie, mianowicie , Tomasz 16/04/12 12:07
    DECLARE @tmp TABLE
    (
    ID INT
    , NUM INT
    , LNG CHAR(2)
    , PRC INT
    , CUR CHAR(3)
    )

    INSERT INTO @tmp
    VALUES
    ( 332, 100092, 'en', 9000, 'EUR' ),
    ( 420, 100092, 'en', 9000, 'EUR' ),
    ( 508, 100092, 'en', 9000, 'EUR' ),
    ( 596, 100092, 'en', 7200, 'EUR' ),
    ( 1004, 100092, 'es', 9000, 'EUR' ),
    ( 1092, 100092, 'es', 9000, 'EUR' ),
    ( 1180, 100092, 'es', 9000, 'EUR' ),
    ( 1268, 100092, 'es', 7457, 'EUR' )

    SELECT
    t2.ID,
    ij.[NUM],
    ij.[LNG],
    ij.[PRC]
    FROM
    ( SELECT
    t.NUM
    , t.LNG
    , MIN(t.PRC) AS PRC
    FROM
    @tmp AS t
    GROUP BY
    t.NUM
    , t.LNG
    ) AS ij
    INNER JOIN @tmp AS t2 ON [ij].[LNG] = [t2].[LNG]
    AND [ij].[NUM] = [t2].[NUM]
    AND [ij].[PRC] = [t2].[PRC]

    Ile masz tych danych?

    https://www.siepomaga.pl/milosz-mosko

    1. danych, a pare milionów wierszy , Deus ex machine 16/04/12 12:41
      to co napisalem jest w duzym uproszczeniu, jeszcze muszę małe pivoty robić w tabeli.
      Bo w wierszu mam 4 grupy kolumn z cena (kazda z grup ma cene, typ, walute) - także muszę przed całą zabawą jeszcze wybrać cene minimalną w ramach tego wiersz z jednej z grup o zadanym typie, a dopiero później dostaje normalną tablicę.

      A ukulałem coś takiego, działa (napisane w uproszczeniu, żeby się z przykładem łączyło):
      CREATE TEMPORARY TABLE EAN_DATA_TEMP AS (
      SELECT
      `ID`, `NUM`,`LNG`,
      { pivoty `PRC`, `CUR` }
      FROM EAN_DATA
      where
      {$where}
      order by `LNG`, `NUM`, `PRC`
      );
      select EAN_DATA_TEMP.PRC, EAN_DATA_TEMP.CUR ,EAN_DATA.* FROM EAN_DATA_TEMP left join EAN_DATA on EAN_DATA_TEMP.ID = EAN_DATA.ID group by EAN_DATA_TEMP.LNG, EAN_DATA_TEMP.NUM;

      "Uti non Abuti"

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL