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
 
 » b0b3r 18:23
 » ligand17 18:22
 » DYD 18:21
 » resmedia 18:13
 » Dexter 18:12
 » john565 18:11
 » fiskomp 18:09
 » Brauni 18:08
 » NimnuL 18:08
 » PeKa 18:07
 » KHot 18:07
 » piszczyk 18:05
 » milekp 18:05
 » soyo 18:00
 » BONUS 17:56
 » rrafaell 17:52
 » jablo 17:47
 » g5mark 17:39
 » Kenny 17:38
 » kicior 17:36

 Dzisiaj przeczytano
 41130 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