Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Atcom

    csendes tag

    válasz szecska_ #780 üzenetére

    Íme egy T-SQL megoldás. Sajnos nem volt elég időm rendesen kidolgozni, de remélem, hogy tudod majd használni.

    create table [hozzavalok]
    (
    [keszetel_id] [int] not null,
    [alapanyag_id] [int] not null,

    constraint [PK_hozzavalok] primary key clustered
    (
    [keszetel_id], [alapanyag_id]
    )
    )

    create table [kinek_mi_van_otthon]
    (
    [szemely_id] [int] not null,
    [alapanyag_id] [int] not null,

    constraint [PK_kinek_mi_van_otthon] primary key clustered
    (
    [szemely_id], [alapanyag_id]
    )
    )

    insert into hozzavalok
    values (1,1),
    (1,2),
    (1,3),
    (2,3),
    (2,4),
    (3,1),
    (3,5)

    insert into kinek_mi_van_otthon
    values (101,1),
    (101,2),
    (101,4),
    (102,1),
    (102,2),
    (102,3),
    (102,4),
    (102,5),
    (103,3),
    (103,4)

    select distinct
    keszetel_id, szemely_id
    from
    -- Minden készételhez egy személy hozzárendelése
    hozzavalok, (select distinct szemely_id from kinek_mi_van_otthon) sz
    where -- Csak azok a személyek kellenek, akiknél minden megvan
    not exists (
    -- Azon személyek halmaza, akiknek valamelyik készétel alapanyagából hiánya van
    select
    *
    from
    (select
    keszetel_id, alapanyag_id, szemely_id
    from
    -- Minden készétel alapanyaghoz egy személy hozzárendelése
    hozzavalok, (select distinct szemely_id from kinek_mi_van_otthon) sz) hv
    left outer join kinek_mi_van_otthon on kinek_mi_van_otthon.alapanyag_id = hv.alapanyag_id
    and kinek_mi_van_otthon.szemely_id = hv.szemely_id
    where
    kinek_mi_van_otthon. szemely_id is null -- Azon személyek kellenek, akiknél valamiből hiány van
    -- az adott készételnél
    and hv.keszetel_id = hozzavalok.keszetel_id
    and hv.szemely_id = sz.szemely_id
    )
    order by
    hozzavalok.keszetel_id, sz.szemely_id


    drop table hozzavalok
    drop table kinek_mi_van_otthon

  • Atcom

    csendes tag

    válasz gabó #761 üzenetére

    Egy Transact-SQL szösszenet:

    create table #tmpString
    (
    nID int identity(1,1) not null,
    cColumn01 varchar(512),
    cColumn02 varchar(512),
    cColumn03 varchar(512)
    )

    insert into #tmpString
    (cColumn01, cColumn02, cColumn03)
    values
    ('ajkfiemndiewnnsd,iewjendsncpwqe', 'ndnaseondcsnnwifdscnoewfnnxasoqwebc', '824dsladnan84ernlsnd32lndal'),
    ('dskdjlfrbv.xcmy.cmpewruwed pskqdaső3ö4urjfdlsac', 'nldfcsarhjöwjadaljdfwöerjqdfhzr', 'df 9r ö2jqwpdkapádkarfjhöw xo'),
    (',asdfwriwepjdfcslanc9wzrigvbksjfnwoeirztgfbsckxlfhjreoj', 'dwoiru23öpjdéscmnweruwéj', 'cwéoiujwöx qwmd ewruö xwoédfjqwe w98r ')


    declare
    @cText varchar(max),
    @nI int

    declare @tblLetters table
    (
    cChar char(1)
    )

    declare curProcess cursor dynamic for
    select
    isnull(S.cColumn01, '')+isnull(S.cColumn02, '')+isnull(S.cColumn03, '')
    from
    #tmpString S

    open curProcess
    fetch next from curProcess into @cText

    while @@fetch_status = 0
    begin
    set @nI = 1
    while @nI <= len(@cText)
    begin
    insert into @tblLetters (cChar) values (substring(@cText, @nI, 1))
    set @nI = @nI+1
    end
    fetch next from curProcess into @cText
    end

    close curProcess
    deallocate curProcess
    drop table #tmpString

    select
    L.cChar, nCount = count(*)
    from
    @tblLetters L
    group by
    L.cChar
    order by
    cChar

  • Atcom

    csendes tag

    válasz ko9 #753 üzenetére

    Így próbáld:

    SELECT * FROM `template`
    WHERE `Quality` =2
    AND `ItemL` BETWEEN 272 AND 305
    AND (`cl` =2 OR `cl` =4)

Új hozzászólás Aktív témák